在Objective-C中,我在UIViewController的viewDidLoad方法中执行以下代码来获取我的iOS应用程序中keyWindow的引用:
UIWindow * keyWindow = [[UIApplication sharedApplication] keyWindow];
因此,我正在将此视图控制器移植到Swift,并在viewDidLoad调用中执行以下操作:
let window = UIApplication.sharedApplication().keyWindow
我试图理解为什么窗口是nil。当我在那一行后面设置断点,然后在控制台中检查窗口时,我得到了这个:
(lldb) po window
nil
我该如何在Swift中将“window”设置为应用程序的keyWindow的有效引用?
let window: UIWindow? = UIApplication.sharedApplication().windows[0] as? UIWindow
可以提供你所需的内容... 或者自从func viewDidAppear(_ animated: Bool)
(直到你的视图可见!)你可以通过self.view.window
直接访问窗口,也许那才是你要找的... - holex