美文网首页
iOS,深入了解控制器view的加载

iOS,深入了解控制器view的加载

作者: 41c48b8df394 | 来源:发表于2016-08-19 07:30 被阅读46次

    经常面试的人都知道有的面试官会问loadview有什么作用,它与viewdidload有什么区别。

    首先我们应该知道控制器view是通过懒加载方式进行加载,就是用到的时候再加载

    1.loadview方法

    当我们用到控制器view的时候,就会调用控制器view的get方法,在get方法内部,首先判断view是否创建,如果存在,直接返回存在的view.如果不存在,则调用控制器的loadview方法,在控制器没有被销毁的情况下,loadview也可能被多次执行。

    2.viewdidload方法

    当控制器loadview方法加载完毕,view被创建成功会,会执行viewdidload,该方法与loadview方法一样,也有可能执行多次。

    那么问题来了,在什么情况下会执行多次。

    比如A控制器pushB控制器,当窗口显示B控制器的view,如果收到内存警告,我们一般会将A控制器中没用的变量及view销毁点。当B控制器pop到A控制器的时候。就会再次执行A控制器中的loadview和viewdidload方法。

    控制器view的加载

    1.控制器通过storyboard加载时,需要指定storyboard的名称,控制器view最终就是storyboard描述的样子。比较简单,不做详细介绍?

    2.控制器view通过xib加载

    控制器view通过xib加载的时候,可能会出现三种情况

    a.指定xib名称

    当我们指定xib名称后,loadview方法就会加载对应的xib,

    b 不指定xib名称

    如果我们不指定xib名称,loadview就会加载与控制器同名的xib

    c 不指定xib名称

    当没有指定xib名称,且没有与控制器同名的xib,会加载前缀与控制器名相同而不带controller的xib

    未完

    相关文章

      网友评论

          本文标题:iOS,深入了解控制器view的加载

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