方法執行順序為:init -> viewDidLoad -> viewWillAppear -> viewDidAppear
viewDidLoad是當程序第一次加載view時調用,以后都不會用到,而viewDidAppear是每當切換到view時就調用。
viewDidLoad
Called after the view has been loaded. For view controllers created in code, this is after -loadView. For view controllers unarchived from a nib, this is after the view is set.
在視圖加載后被調用,如果是在代碼中創建的視圖加載器,他將會在loadView方法后被調用,如果是從nib視圖頁面輸出,他將會在視圖設置好后后被調用。
viewWillAppear
Called when the view is about to made visible. Default does nothing
視圖即將可見時調用。默認情況下不執行任何操作
更新准備顯示的視圖的信息。調用時,視圖可能還沒有被加載。
viewDidAppear
Called when the view has been fully transitioned onto the screen. Default does nothing
視圖已完全過渡到屏幕上時調用
來觸發視圖完全顯示在屏幕上之后的行為,例如任何動畫。
備注:
(1)按下Home鍵之后不會調用viewWillDisappear和viewDidDisappear
因為在ios4后引入了后台的概念,當按下Home鍵之后,程序被掛起了,但是該View依然是原來的View,並不是新的。所以只有內存不夠的時候或程序被終止的時候,才會調用viewWillDisappear和viewDidDisappear。
視圖控制對象通過alloc和init來創建,但是視圖控制對象不會在創建的那一刻就馬上創建相應的視圖,而是等到需要使用的時候才通過調用loadView來創建,這樣的做法能提高內存的使用率。比如,當某個標簽有很多UIViewController對象,那么對於任何一個UIViewController對象的視圖,只有相應的標簽被選中時才會被創建出來。
init-初始化程序
viewDidLoad-加載視圖
viewWillAppear-UIViewController對象的視圖即將加入窗口時調用;
viewDidApper-UIViewController對象的視圖已經加入到窗口時調用;
viewWillDisappear-UIViewController對象的視圖即將消失、被覆蓋或是隱藏時調用;
viewDidDisappear-UIViewController對象的視圖已經消失、被覆蓋或是隱藏時調用;
viewVillUnload-當內存過低時,需要釋放一些不需要使用的視圖時,即將釋放時調用;
viewDidUnload-當內存過低,釋放一些不需要的視圖時調用。