J'ai un IBOutlet dans ViewController.swift appelé backgroundView
utilisant IBOutlet d'une autre classe rapide
class ViewController: UIViewController, SideBarDelegate {
@IBOutlet weak var backgroundView: UIView!
Je veux utiliser cette IBOutlet sur SideBar.swift
@objc protocol SideBarDelegate{
func sideBarDidSelectButtonAtIndex(index:Int)
optional func sideBarWillClose()
optional func sideBarWillOpen()
}
//When an item of the sidebar is selected, and also when the sidebar will open or close
class SideBar: NSObject, SideBarTableViewControllerDelegate {
func handleSwipe(recognizer:UISwipeGestureRecognizer){
let bgv = ViewController()
if recognizer.direction == UISwipeGestureRecognizerDirection.Right {
showSideBar(false)
delegate?.sideBarWillClose?()
let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light)
let blurView = UIVisualEffectView(effect: blurEffect)
blurView.frame = bgv.backgroundView.bounds
bgv.backgroundView.addSubview(blurView)
} else {
showSideBar(true)
delegate?.sideBarWillOpen?()
}
}
Mais en montrant le côté barre, l'arrière-plan ne brouille pas. Qu'est-ce qui ne va pas?
Je pense que ce qui se passe est que vous devez vous assurer que ViewController est la même instance du contrôleur de vue du IBOutlet est câblé jusqu'à. En ce moment vous venez d'instancier un nouveau ViewController sans une plume ou un storyboard –
merci! Je comprends ce qui ne va pas: D – Songshil