![](https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1486484892370&di=279699ca78d88cc3be089793848d15f1&imgtype=0&src=http://img1.juimg.com/140915/330626-140915162U454.jpg)
是什么?
作為MVC設(shè)計模式中的C,Controller一直扮演著項目開發(fā)中最重要的角色,它是視圖和數(shù)據(jù)的橋梁姑尺,通過它的管理,將數(shù)據(jù)有條有理的展示在我們的View層上蝠猬。只要是個對象切蟋,就一定要有生命周期,UIViewController也不例外榆芦,生命周期管理Controller的作用范圍和時間柄粹,也管理其內(nèi)對象的作用范圍和時間喘鸟。
初始化對象,初始化數(shù)據(jù):
init (initWithNibName)```
######從nib載入視圖 驻右,通常這一步不需要去干涉什黑。除非你沒有使用xib文件創(chuàng)建視圖:
loadView```
載入完成,可以進行自定義數(shù)據(jù)以及動態(tài)創(chuàng)建其他控件:
viewDidLoad```
######布局時調(diào)用:
updateViewConstraints,viewWillLayoutSubviews,viewDidLayoutSubviews```
當controller作為一個子視圖控制器被添加或被移除時調(diào)用:
willMoveToParentViewController:
didMoveToParentViewController:```
######視圖將出現(xiàn)在屏幕之前堪夭,馬上這個視圖就會被展現(xiàn)在屏幕上了:
viewWillAppear: ```
視圖已在屏幕上渲染完成:
viewDidAppear:```
######視圖將被從屏幕上移除之前執(zhí)行 :
viewWillDisappear:```
視圖已經(jīng)被從屏幕上移除愕把,用戶看不到這個視圖了:
viewDidDisappear:```
- 當視圖從界面添加或移除時調(diào)用。如:一個看小說的頁面森爽,我們希望關(guān)閉小說后恨豁,再次打開可以顯示在上次關(guān)閉時的位置。就可以在`viewWillDisappear:`方法保存滾動到的位置爬迟,在`viewWillAppear:`方法設(shè)置滾動的位置
######當視圖控制器收到內(nèi)存警告時調(diào)用橘蜜。如果內(nèi)存使用過高,會被iOS系統(tǒng)殺掉你的APP付呕,也就是閃退:
didReceiveMemoryWarning```
當一個VC被導(dǎo)航控制器push時: | pop時: |
---|---|
willMoveToParentViewController: | willMoveToParentViewController: (pop時參數(shù)為nil) |
viewWillAppear: | viewWillDisappear: |
updateViewConstraints | updateViewConstraints |
viewWillLayoutSubviews | viewWillLayoutSubviews |
viewDidLayoutSubviews | viewDidLayoutSubviews |
viewDidAppear: | viewDidDisappear: |
didMoveToParentViewController: | didMoveToParentViewController:(pop時參數(shù)為nil) |