左侧有一个UINavigationController
,UIBarButtonItem
。该导航控制器是UIViewController的子类。
当我按下该按钮时,我编写了一个委托方法,该方法被调用。
但是在父ViewController上,这个委托没有被调用,我不知道为什么。有谁能够帮我?感谢
以下是一些代码......
这是导航控制器
protocol CollectionControllerDelegate {
func onMenu()
}
class CollectionController: UIViewController {
var delegate: CollectionControllerDelegate?
@IBAction func onMenu() {
self.delegate?.onMenu()
}
}
这是父视图控制器类,mainController是导航控制器,我在上面描述过。
(self.mainController!.viewControllers[0] as! CollectionController).delegate = self
这个函数没有被调用,我不明白:(
func onMenu() { }
答案 0 :(得分:0)
检查var delegate: CollectionControllerDelegate?
是否为零。如果是这种情况,你在这里设置一个错误的代表:
(self.mainController!.viewControllers[0] as! CollectionController).delegate = self
第一个视图控制器依赖于您在代码中的哪个位置调用它。它始终是UINavigationController堆栈上的顶视图控制器,购买时必须确保它已被推送。
还要确保您的@IBAction
已连接并且正在调用。