我从我的viewWillAppear
中调用了一些代码,这些代码依赖于根视图控制器的traitCollection有效。令我惊讶的是,即使在调用viewWillAppear时,UIApplication.sharedApplication.keyWindow.rootViewController
在设置和调用makeKeyWindow
很久之后仍为零。
为什么会这样呢?实际发生了什么?似乎有些合理的假设已不再是对的。
最佳答案
我假设您尚未在window
方法上分配didFinishLaunchingWithOptions
属性
如果您在App Delegate分配中没有window属性,它将被保留
您是否编写过类似的代码?
self.window = UIWindow(frame: UIScreen.main.bounds)
let mainVC = UIViewController()
self.window?.rootViewController = mainVC
self.window?.makeKeyAndVisible()
顺便说一下,
keyWindow
属性is now deprecated尝试这个:
UIApplication.shared.windows.first({ $0.isKeyWindow })
关于ios - iOS:启动应用后,UIApplication.sharedApplication.keyWindow.rootViewController == nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58205790/