ios开发

19- KeyWindow在ViewDidLoad获取为nil

2016-08-09  本文已影响119人  春田花花幼儿园

前言

其实,这个问题之前就遇到过,之前只是简单地认为

[[UIApplication sharedApplication] keyWindow]

这段代码在ViewDidLoad方法中创建是无效的,必须在ViewDidAppear创建才有值.

然而,事情没有这么简单....

发现

最近在看网上开源代码的时候,发现,在人家的ViewDidLoad方法中,keyWindow是有值的,不是为nil.经过和兵哥的一起观察,发现如果我们在给当前控制器添加导航条之后,再在ViewDidLoad方法中获取keyWindow是有值的. 相信,苹果的内部对这一初始化进行了处理.

......

那么问题来了,内部是做了什么处理呢???

我们同时也知道,获取window还有另外一种方式,如下

[[UIApplication sharedApplication] windows]

那么这方式获取到的windowskeyWindow有什么区别呢???

-------------- 占位行 :待更新-------------

结论

所以,要想ViewDidLoad方法中获取keyWindow有值,那么就给当前控制器添加一个导航条.

交流

上一篇 下一篇

猜你喜欢

热点阅读