我有一个奇怪的问题涉及UITabBarControllerDelegate
。
我正在使用以下代码:
import UIKit
class MainTabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = MainTabBarControllerDelegate()
print("did set delegate to \(self.delegate)")
}
}
class MainTabBarControllerDelegate: NSObject, UITabBarControllerDelegate {
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
print("selected: \(viewController) --> index: \(tabBarController.selectedIndex)")
}
}
然后,在我的情节提要中,将香草UITabBarController
与两个平原UIViewControllers
相连。我只是想捕捉选项卡更改事件,但是由于某种原因delegate
我的MainTabBarController
设置不正确。
当我使用上面的代码运行项目时,控制台输出:
did set delegate to nil
为什么不创建的正确实例,MainTabBarControllerDelegate
以便可以调用其委托方法?
在这里,self.delegate = MainTabBarControllerDelegate()
您可以创建一个委托,并立即将其分配给delegate
属性weak
。因此创建了该委托人,但立即将该委托人处分,因为没有任何东西可以对其进行强有力的引用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句