控制器View的生命週期及相關函數是什麼?你在開發中是如何用的?

1. 首先判斷控制器是否有視圖, 如果沒有就調用loadView方法創建: 在此方法中可以通過storyBoard或者代碼創建


2. 隨後調用viewDidLoad, 進一步對視圖進行初始化操作, 程序運行只會調用一次.

    此時纔有了view


3. 在視圖顯示之前調用viewWillAppear, 該函數只要有視圖顯示就會被調用, 該函數可以被多次調用.

    view即將顯示, 此時superView一般爲nil, 即view還沒有加到任何一個view之中


4. 視圖顯示完成會調用viewDidAppear, 該函數可以被多次調用.

    view已經顯示, 被加到另一個view中


5. 在佈局變化前後調用 viewWillLayoutSubviews 或 viewDidLayoutSubviews 處理相關信息


6. 在視圖消失之前調用viewWillDisappear, 該函數可以被多次調用.

    view即將消失, 此時一般還沒有調用removeFromSuperView


7. 在視圖消失之後調用viewDidDisappear, 該函數可以被多次調用. 

    view從superView中移除了


8. 在收到內存警告時調用didReceiveMemoryWarning

以上是生命週期相關的函數, 控制器view的生命週期是 viewDidLoad -> viewWillAppear -> viewDidAppear -> viewWillDisappear -> viewDidDisappear -> didReceiveMemoryWarning ,view的出生到滅亡


注: viewdidunload 在iOS6 就已經過期了, 將回收內存的相關操作移到了didReceiveMemoryWarning中


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章