一、一个页面完整的生命周期和程序执行顺序
1、loadView 通常这一步不需要去干涉。
2、viewDidLoad 载入完成,可以进行自定义数据以及动态创建其他控件
3、viewWillAppear 视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了
4、viewDidAppear 视图已在屏幕上渲染完成,当一个视图被移除屏幕并且销毁的时候的执行顺序,这个顺序差不多和上面的相反
5、viewWillDisappear 视图将被从屏幕上移除之前执行
6、viewDidDisappear 视图已经被从屏幕上移除,用户看不到这个视图了
7、dealloc 视图被销毁
二、两个页面之间生命周期执行顺序:
(1) VC1 页面push到 VC2页面
(VC1)viewWillDisappear->(VC2)viewDidLoad->(VC2)viewWillAppear->(VC1)viewDidDisappear->(VC2)viewDidAppear
(2)VC2 页面pop到 VC1页面
(VC2)viewWillDisappear->(VC1)viewWillAppear->(VC2)viewDidDisappear->(VC1)viewDidAppear
(3)VC2 页面系统左滑手势滑了一点,又留在当前页面
(VC2)viewWillDisappear->(VC1)viewWillAppear->(VC1)viewWillDisappear->(VC1)viewDidDisappear->(VC2)viewWillAppear->(VC2)viewDidAppear
从以上三种情况可以看出一个页面的viewDidDisappear不一定一定在另一个页面viewWillAppear的后面,而一定在另一个页面的viewDidAppear的后面