当。。。的时候viewDidLoad
称为视图应该被加载。
但我总是崩溃UIApplication.sharedApplication().keyWindow
为零...
我应该把我的代码放在哪里,以便在加载视图后调用它,而不是每次用户回来时调用它(因此我已排除 viewWillAppear)?
情况一:- 手动的UIWindow
在应用程序的委托中创建
您可能以某种方式添加了UIViewController
to a UIWindow
在将其设置为键之前。
你应该打电话window.makeKeyAndVisible()
创建窗口后在应用程序的委托中。
情况2:- 自动故事板实例化
系统读取你的故事板,初始化根视图控制器,通过调用来准备它viewDidLoad
and viewWillAppear
,将其添加到窗口并显示该窗口。
发生的情况是系统不能只是将窗口设置到前面并将视图控制器动画到其上,因为它是第一个视图控制器,并且您不是推送/弹出导航控制器。和viewDidLoad
可能需要一些时间...所以Default.png
同时显示,直到视图控制器准备就绪。
然后它调用viewDidAppear
,当它实际出现时。所以这就是你的地方should能够访问keyWindow
情况3:
您处于一种奇怪的情况,您有窗口,但当前没有一个窗口是“关键”窗口,但您迫切需要访问该窗口。
Call UIApplication.sharedApplication().windows
,看看它是否不为空并取第一个元素。UIApplication.sharedApplication().delegate?.window
也可能有一个值,但通常只有当窗口是key已经。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)