iOS技术文章

知识小总结七 (Controller 的生命周期)☀️

2017-02-14  本文已影响23人  LeaderBiao

是什么?

作为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)
上一篇下一篇

猜你喜欢

热点阅读