是什么?
作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有条有理的展示在我们的View层上。只要是个对象,就一定要有生命周期,UIViewController也不例外,生命周期管理Controller的作用范围和时间,也管理其内对象的作用范围和时间。
初始化对象,初始化数据:
init (initWithNibName)```
######从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图:
loadView```
载入完成,可以进行自定义数据以及动态创建其他控件:
viewDidLoad```
######布局时调用:
updateViewConstraints,viewWillLayoutSubviews,viewDidLayoutSubviews```
当controller作为一个子视图控制器被添加或被移除时调用:
willMoveToParentViewController:
didMoveToParentViewController:```
######视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了:
viewWillAppear: ```
视图已在屏幕上渲染完成:
viewDidAppear:```
######视图将被从屏幕上移除之前执行 :
viewWillDisappear:```
视图已经被从屏幕上移除,用户看不到这个视图了:
viewDidDisappear:```
- 当视图从界面添加或移除时调用。如:一个看小说的页面,我们希望关闭小说后,再次打开可以显示在上次关闭时的位置。就可以在`viewWillDisappear:`方法保存滚动到的位置,在`viewWillAppear:`方法设置滚动的位置
######当视图控制器收到内存警告时调用。如果内存使用过高,会被iOS系统杀掉你的APP,也就是闪退:
didReceiveMemoryWarning```
当一个VC被导航控制器push时: | pop时: |
---|---|
willMoveToParentViewController: | willMoveToParentViewController: (pop时参数为nil) |
viewWillAppear: | viewWillDisappear: |
updateViewConstraints | updateViewConstraints |
viewWillLayoutSubviews | viewWillLayoutSubviews |
viewDidLayoutSubviews | viewDidLayoutSubviews |
viewDidAppear: | viewDidDisappear: |
didMoveToParentViewController: | didMoveToParentViewController:(pop时参数为nil) |