美文网首页
面试题:简述视图控制器创建时的生命周期

面试题:简述视图控制器创建时的生命周期

作者: 阳光的影子v | 来源:发表于2016-09-09 18:27 被阅读31次

    alloc

    创建对象,分配内存空间

    init(initwithNibName)

    初始化对象,寻找有没有可用的NIB文件,如果有就可以直接使用NIB文件的视图控制器view视图(initWithCoder是一个类在IB中创建但在xocde中被实例化时被调用的.比如,通过IB创建一个controller的nib文件,然后在xocde中通过initWithNibName来实例化这个controller,那么这个controller的initWithCoder会被调用。),然后调用loadView方法,如果没有直接调用loadView方法。

    loadView

    无论XIB还是代码创建都会调用loadView方法,每次访问UIViewController的view(比如controller.view、self.view)而且view为nil,loadView方法就会被调用。
    loadView方法做的事情:
    1> 它会先去查找与UIViewController相关联的xib文件,通过加载xib文件来创建UIViewController的view。

    • 如果在初始化UIViewController指定了xib文件名,就会根据传入的xib文件名加载对应的xib文件。
    • 如果没有明显地传xib文件名,就会加载跟UIViewController同名的xib文件。

    2> 如果没有找到相关联的xib文件,就会创建一个空白的UIView,然后赋值给UIViewController的view属性

    总结一句话,苹果设计这个方法就是给我们自定义UIViewController的view用的
    **loadView方法只是创建一个view,并没有将view加入内存

    viewDidLoad

    无论你是通过xib文件还是重写loadView方法创建UIViewController的view,在view创建完毕后,最终都会调用viewDidLoad方法。

    viewWillAppear

    view将要显示时执行该方法。

    viewDidAppear

    view显示时执行该方法。

    viewWillDisappear

    view将要消失时执行该方法。

    viewDidDisappear

    view消失时执行该方法。

    delloc

    视图控制器释放时执行该方法。

    相关文章

      网友评论

          本文标题:面试题:简述视图控制器创建时的生命周期

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