美文网首页
【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