【发布时间】:2020-12-16 01:56:32
【问题描述】:
我两次覆盖 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 没有被调用,因为你的“视图”是零。您必须以任何这些方式初始化您的视图控制器。 1. 从 xib 加载 2. 从情节提要加载 3. 以编程方式创建一个视图控制器,该控制器具有指定框架的视图
标签: ios swift uiviewcontroller viewdidload