loadView,viewDidLoad等幾種方法的調用總結


viewDidLoad 此方法只有當view從nib文件初始化的時候才被調用viewDidLoad用於初始化,加載時用到的。 
loadView 此方法在控制器的view為nil的時候被調用。雖然經常說loadView是使用代碼生成視圖的時候,當視圖第一次載入的時候調用的方法。用於使用(寫)代碼來實現控件。用於使用代碼生成控件的函數。但是經過自己實際斷點單步操作發現,不管用不用nib,都最先調用loadView,所以說loadView 此方法在控制器的view為nil的時候就會被調用。一般在使用nib后就會把loadView注釋掉。Xcode4.2創建的時候就給注釋好了。

當手寫代碼時一定注意分配UIView.自己經常用的有兩種方法,如下:

- ( void ) loadView { 
UIView *view = [ [ UIView alloc] initWithFrame:[ UIScreen
mainScreen] .applicationFrame] ;
self.view = view;
[ view release] ;
}

- ( void ) loadView {
[super loadView];
}

但是第二種方法[super loadView]方法不被提倡,也不是蘋果所希望的,就自己的幾個小項目來看,就有一次使用第二種方法崩了,第一種就可以,所以還是方法一比較保險。就是你的loadView中應該有self.view = …這樣的行為。

viewDidUnload方法‍
當系統內存吃緊的時候會調用該方法,一般在這個類中添加的代碼是賦空代碼,網上的解釋是這樣的:

在該方法中釋放其他與view有關的對象、其他在運行時創建(但非系統必須)的對象、在viewDidLoad中被創建的對象、緩存數據等 release對象后,將對象置為nil(IBOutlet只需要將其置為nil,系統release view時已經將其release掉了)

一般認為viewDidUnload是viewDidLoad的鏡像,因為當view被重新請求時,viewDidLoad還會重新被執行

viewDidUnload中被release的對象必須是很容易被重新創建的對象(比如在viewDidLoad或其他方法中創建的對象),不要release用戶數據或其他很難被重新創建的對象

 

viewWillAppear:方法更新准備顯示的視圖的信息。調用時,視圖可能還沒有被加載。
使用viewDidAppear:來觸發視圖完全顯示在屏幕上之后的行為,例如任何動畫。

這兩個方法是每當切換到view時就調用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM