美文网首页ios开发
19- KeyWindow在ViewDidLoad获取为nil

19- KeyWindow在ViewDidLoad获取为nil

作者: 春田花花幼儿园 | 来源:发表于2016-08-09 11:25 被阅读119次

    前言

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

    [[UIApplication sharedApplication] keyWindow]
    

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

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

    发现

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

    ......

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

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

    [[UIApplication sharedApplication] windows]
    

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

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

    结论

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

    交流

    相关文章

      网友评论

        本文标题:19- KeyWindow在ViewDidLoad获取为nil

        本文链接:https://www.haomeiwen.com/subject/xafdsttx.html