У меня есть IBOutlet в ViewController.swift называется backgroundView
использования IBOutlet из другого класса в быстрых
class ViewController: UIViewController, SideBarDelegate {
@IBOutlet weak var backgroundView: UIView!
И я хочу использовать что IBOutlet на 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?()
}
}
Но при показе на стороне бар, фон не размывается. Что не так?
Я думаю, что происходит в том, что вы должны убедиться, что ViewController тот же экземпляр контроллера просмотреть IBOutlet подключаемого до. Прямо сейчас вы просто создаете новый ViewController без ниба или раскадровки –
спасибо! Я понимаю, что не так: D – Songshil