我有下面一段代码在我的
application(_:didFinishLaunchingWithOptions:)
self.window = self.window ?? UIWindow()
self.window?.makeKeyAndVisible()
let mainViewController = HomeViewController.instantiate() //here I just call the viewController through storyboard, set some properties and return its instance
window?.rootViewController = mainViewController
我检查了,当
viewController
已添加到
window
viewDidLoad
viewWillLayoutSubviews
viewDidLayoutSubviews
之后的任何内容都不会被调用(仅当它最初添加到
窗
,之后,事件按预期的方式调用)。安全布局指南也没有设置(我相信其他视图属性也是如此)。为了绕过此问题,我执行以下操作:
window?.rootViewController = UIViewController()
window?.rootViewController = mainViewController
似乎这会以某种方式迫使窗口在第二次设置其根视图控制器时正常工作。
然而,似乎要么是我遗漏了什么,要么是存在某种生命周期问题。
是否有人面临同样的问题并找到了根本原因?