ARC環(huán)境
單個(gè)viewController的生命周期
- initWithCoder:(NSCoder *)aDecoder:(如果使用storyboard或者xib)
- loadView:加載view
- viewDidLoad:view加載完畢
- viewWillAppear:控制器的view將要顯示
- viewWillLayoutSubviews:控制器的view將要布局子控件
- viewDidLayoutSubviews:控制器的view布局子控件完成
- 這期間系統(tǒng)可能會(huì)多次調(diào)用viewWillLayoutSubviews 、 viewDidLayoutSubviews 倆個(gè)方法
- viewDidAppear:控制器的view完全顯示
- viewWillDisappear:控制器的view即將消失的時(shí)候
這期間系統(tǒng)也會(huì)調(diào)用viewWillLayoutSubviews 、viewDidLayoutSubviews 兩個(gè)方法 - viewDidDisappear:控制器的view完全消失的時(shí)候
多個(gè)viewControllers跳轉(zhuǎn)
當(dāng)我們點(diǎn)擊push的時(shí)候首先會(huì)加載下一個(gè)界面然后才會(huì)調(diào)用界面的消失方法
- initWithCoder:(NSCoder *)aDecoder:ViewController2 (如果用xib創(chuàng)建的情況下)
- loadView:ViewController2
- viewDidLoad:ViewController2
- viewWillDisappear:ViewController1 將要消失
- viewWillAppear:ViewController2 將要出現(xiàn)
- viewWillLayoutSubviews ViewController2
- viewDidLayoutSubviews ViewController2
- viewWillLayoutSubviews:ViewController1
- viewDidLayoutSubviews:ViewController1
- viewDidDisappear:ViewController1 完全消失
- viewDidAppear:ViewController2 完全出現(xiàn)
小結(jié):
整個(gè)控制器聲明周期: viewDidLoad -> viewWillAppear -> viewWillLayoutSubviews -> viewDidLayoutSubviews -> viewDidAppear -> viewWillDisappear -> viewDidDisappear