Day24
UIViewController的生命周期:
程式碼的執行順序:
1、 alloc
此階段創建對象同時分配空間。
2、init (initWithNibName|initWithCoder)
初始化UIViewController,關鍵數據初始化。
3、awakeFromNib
當awakeFromNib方法被使用時,所有視圖的outlet和action已經連接,但還沒有被確定.
而且適合視圖控制器的實例化配合一起使用的,可配合用戶喜好來進行設置的內容,但缺點是無法存在storyBoard或xib中,因此可使用該方法被加載進來。
4、loadView
假設視圖控制器是通過nib創建,即代表視圖控制器已從nib文件中解檔並創建,接下來就是對view進行初始化/加載。
5、viewDidLoad
當視圖被加載/載入完成到記憶體後,但畫面被顯示之前,就會調用viewDidLoad。可以進行自定義數據以及動態創建其他控件.
6、viewWillAppear
當視圖將出現在畫面/屏幕之前,且沒有任何動畫開始出現在畫面時被呼叫的。
7、viewWillLayoutSubviews
將要對子視圖進行調整。
8、viewDidLayoutSubviews
對子視圖進行調整完成之後需要做的工作。
9、viewDidAppear
在viewWillAppear結束後,即視圖被加載後,視圖已在屏幕上渲染完成。另外可以通過[轉換]來增加已經呈現的視圖。
10、viewWillDisappear
這個方法是當視圖將屏幕上被刪除/移除,並且動畫開始執行前調用的。
11、viewDidDisappear
當視圖在屏幕上被刪除/移除。
12、dealloc
視圖被銷毀,此處需要對你在init和viewDidLoad中創建的對象進行釋放。
13、didReceiveMemoryWarning
內存警告。內存足夠的情況下,App的視圖會一直保存在內存中,但如果內存不夠,沒有正在顯示的viewController會收到內存不足的警告,釋放擁有的視圖,以達到釋放內存的目的。