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中