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

2018-07-11  本文已影响23人  24c41111e47b

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


控制器生命周期

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 bounds:

上一篇下一篇

猜你喜欢

热点阅读