美文网首页
UIViewController的生命历程

UIViewController的生命历程

作者: shenhaixiexie | 来源:发表于2018-12-27 15:39 被阅读4次

    参考链接

    [ViewController initWithCoder:]或[ViewController initWithNibName:Bundle]: 首先从归档文件中加载UIViewController对象。即使是纯代码,也会把nil作为参数传给后者。
    [UIView awakeFromNib]: 作为第一个方法的助手,方法处理一些额外的设置。
    [ViewController loadView]:创建或加载一个view并把它赋值给UIViewController的view属性。
    -[ViewController viewDidLoad]: 此时整个视图层次(view hierarchy)已经放到内存中,可以移除一些视图,修改约束,加载数据等。
    [ViewController viewWillAppear:]: 视图加载完成,并即将显示在屏幕上。还没设置动画,可以改变当前屏幕方向或状态栏的风格等。
    [ViewController viewWillLayoutSubviews]即将开始子视图位置布局
    [ViewController viewDidLayoutSubviews]用于通知视图的位置布局已经完成
    [ViewController viewDidAppear:]:视图已经展示在屏幕上,可以对视图做一些关于展示效果方面的修改。
    [ViewController viewWillDisappear:]:视图即将消失
    [ViewController viewDidDisappear:]:视图已经消失
    [ViewController dealloc:]:视图销毁的时候调用

    按照执行顺序排列:

    1. initWithCoder:通过nib文件初始化时触发。
    2. awakeFromNib:nib文件被加载的时候,会发生一个awakeFromNib的消息到nib文件中的每个对象。
    3. loadView:开始加载视图控制器自带的view。
    4. viewDidLoad:视图控制器的view被加载完成。
    5. viewWillAppear:视图控制器的view将要显示在window上。
    6. updateViewConstraints:视图控制器的view开始更新AutoLayout约束。
    7. viewWillLayoutSubviews:视图控制器的view将要更新内容视图的位置。
    8. viewDidLayoutSubviews:视图控制器的view已经更新视图的位置。
    9. viewDidAppear:视图控制器的view已经展示到window上。
    10. viewWillDisappear:视图控制器的view将要从window上消失。
    11. viewDidDisappear:视图控制器的view已经从window上消失。

    相关文章

      网友评论

          本文标题:UIViewController的生命历程

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