美文网首页
【iOS】视图生命周期-控制器

【iOS】视图生命周期-控制器

作者: 24c41111e47b | 来源:发表于2018-07-11 14:36 被阅读23次

    最近发现很多人对视图生命周期的调用顺序不是很清楚,这里我们就来记录总结下视图的生命周期,以便帮助大家提高开发效率和代码质量.


    控制器生命周期

    UIViewController控制器的生命周期包括如下方法:

    - (void)viewDidLoad;
    - (void)viewWillAppear:(BOOL)animated;
    - (void)viewDidAppear:(BOOL)animated;
    - (void)viewWillDisappear:(BOOL)animated;
    - (void)viewDidDisappear:(BOOL)animated;
    - (void)viewWillLayoutSubviews;
    - (void)viewDidLayoutSubviews;
    

    生命周期调用顺序

    加载一个RootViewController,对应调用顺序如下:

    viewDidLoad -> viewWillAppear -> viewWillLayoutSubviews -> 
    viewDidLayoutSubviews - > viewDidAppear
    

    RootVc 切换到 NextVc,调用顺序:

    NextVc : viewDidLoad -> RootVc : viewWillDisappear  -> NextVc : viewWillAppear -> 
    NextVc : viewWillLayoutSubviews -> NextVc : viewDidLayoutSubviews -> RootVc : viewDidDisappear -> 
    NextVc : viewDidAppear
    

    NextVc 返回 RootVc,调用顺序:

    NextVc : viewWillDisappear -> RootVc : viewWillAppear -> NextVc : viewDidDisappear -> 
    RootVc : viewDidAppear
    

    子视图Subview

    控制器 View 添加/移除 subView,触发 Layout 生命周期方法:

    viewWillLayoutSubviews ->  viewDidLayoutSubviews
    

    改变 subView frame:

    • 修改subView(x,y)坐标,不触发生命周期方法;
    • 修改subView (width,height) ,同上触发 Layout 生命周期方法

    改变 subView bounds:

    • 修改subView (x,y) 坐标,触发 Layout 生命周期
    • 修改subView (width,height),触发 Layout 生命周期

    相关文章

      网友评论

          本文标题:【iOS】视图生命周期-控制器

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