最近面试总被问及ViewController生命周期问题,像右滑切换的时候方法调用的顺序问题。可能平时总被忽略,在此总结一下。
以下划分几种情况为大家一一解读生命周期方法调用的问题(A控制器,B控制器)
---------------------------------华丽的分割线-----------------------------------------------------------
1、正常加载
A initWithNib
A loadView
A viewDidLoad
A viewWillAppear
A viewWillLayoutSubviews
A viewDidLayoutSubviews
A viewDidAppear
2、A Push到 B
A viewWillDisappear
B loadView
B viewDidLoad
B viewWillAppear
B viewWillLayoutSubviews
B viewDidLayoutSubviews
A viewDidDisappear
B viewDidAppear
3、点击返回按钮 B pop到 A
B viewWillDisappear
A viewWilAppear
B viewDidDisappear
A viewDidAppear
B dealloc
--------------------------------------------重点来了-------------------------------------------------------------------
4、B通过滑动手势,右滑后不松手
B viewWillDisappear
A viewWillAppear
5、A出现的占屏比率比B出现的占屏比率小时松手,仍然回到了B
A viewWillDisappear
A viewDidDisappear
B viewWillAppear
B viewDidAppear
6、A出现的占屏比率比B出现的占屏比率大 ,切回了A
B viewDidDisappear
A viewDidAppear
B dealloc
7、快速的右滑手势返回 B 到 A
B viewWillDisappear
A viewWilAppear
B viewDidDisappear
A viewDidAppear
B dealloc
8、当手动的向B的ViewController的view添加SubView时
B viewWillLayoutSubviews
B viewDidLayoutSubviews
ps:向SubView添加SubView时是不会调用以上两个方法的