[英]Why doesn't my for loop complete when I put it in the viewDidLoad?
[英]Why doesn’t my second override of viewDidLoad get called?
我覆盖了 viewDidLoad 两次。 第二次,所以我可以设置一个委托。 然而......它没有被调用,因为 myDel 为零。 为什么我的覆盖,在具体类 CoolTableController 中不被调用?
protocol CoolTableProtocol {
//unrelevant code
}
class CoolTableViewController: UITableViewController {
var myDel: CoolProtocol!
override func viewDidLoad() {
super.viewDidLoad()
print("myDel")
//this should not be nil....yet it is
print(myDel)
}
}
class CoolTableController: CoolTableViewController,CoolTableProtocol {
override func viewDidLoad() {
self.myDel = self
super.viewDidLoad()
}
}
我称之为:
let coolTableVC = CoolTableController()
mainView.addSubview(coolTableVC.view)
self.addChild(coolTableVC)
coolTableVC.didMove(toParent: self)
请注意ViewDidLoad
是一个生命周期函数,它不会以编程方式触发,只有在
- viewDidLoad 在控制器的视图加载到内存后调用。
创建UIViewController
的普通实例不会自行触发这些功能。
所以你可以像这样调用coolTableVC.view
let _ = coolTableVC.view
因为该函数将在.view
加载后触发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.