UIViewController 的 生命周期如下:
-[ViewController initWithCoder:]
-[ViewController awakeFromNib]
-[ViewController loadView]
-[ViewController viewDidLoad]
-[ViewController viewWillAppear:]
-[ViewController viewWillLayoutSubviews]
-[ViewController viewDidLayoutSubviews]
-[ViewController viewWillLayoutSubviews]
-[ViewController viewDidLayoutSubviews]
-[ViewController viewDidAppear:]
-[ViewController viewWillDisappear:]
-[ViewController viewDidDisappear:]
-[ViewController dealloc]
-[ViewController didReceiveMemoryWarning]
在UITabBarController中切换控制器,各控制器生命周期执行顺序如下:
-[ViewControllerOne viewDidLoad] -------------- 视图控制器1 加载完成
-[ViewControllerOne viewWillAppear:] -------------- 视图控制器1即将显示
-[ViewControllerOne viewDidAppear:] -------------- 视图控制器1已经显示
-[ViewControllerTwo viewDidLoad] -------------- 视图控制器2 加载完成***1未完全消失,2就开始加载
-[ViewControllerTwo viewWillAppear:] -------------- 视图控制器2即将显示
-[ViewControllerOne viewWillDisappear:] -------------- 视图控制器1 即将消失 ****1现在才消失
-[ViewControllerOne viewDidDisappear:] ---------------视图控制器1 已经消失
-[ViewControllerTwo viewDidAppear:] -------------- 视图控制器2 已经显示
******需要注意,之前一直有误区,认为控制器1完全消失之后才开始加载控制器2 , 以上执行顺序说明不是.
参考链接:
https://www.cnblogs.com/wendingding/p/3775636.html
https://www.jianshu.com/p/d60b388b19f5
网友评论