uiviewcontroller是檢視和資料的橋梁,uiviewcontroller是所有controller的基類,ios內建了很多試圖控制器,如導航控制器,tableviewcontroller等。
檢視控制本身包含乙個檢視,是view。uiscreen是連線物理螢幕的標示,uiwindow是為uiscreen提供了乙個畫布。
載入過程分為以下幾步: 第
一、從xib檔案中建立:- (id)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle *)nibbundleornil
sample:
self
.viewcontroller
= [[[
andyviewcontrolleralloc]initwithnibname:
@"andyviewcontroller"bundle:
nil]autorelease];
說明:如果物件是uiviewcontroller的子類,那麼必定會呼叫該函式,init函式在初始化過程中也會呼叫此函式,如果檔案中沒有xib,那麼初始化呼叫完此函式後,view仍然回空,這個時候呼叫view的set方法發現,view為空,就會自動呼叫loadview方法初始化乙個emptyview,如果子類重寫了該方法,那麼就會呼叫子類的該方法,但是子類重寫時必須self.view 複製,否則view將為空,接下來呼叫viewdidload方法。
第二、loadview方法
當view需要被展示而它卻是nil時,viewcontroller會呼叫該方法。不要直接呼叫該方法。
如果手工維護views,必須過載重寫該方法
如果使用ib維護views,必須不能過載重寫該方法
loadview和ib構建view
作用:在需要用程式自定義view時重新,其他情況可以不用考慮
第三、(void)viewdidload
在呼叫完loadview方法後,呼叫此方法,重寫該方法可以進一步定製view,
一般情況下,資料物件是通過配置view controller的屬性來提供的,view controller需要的一些額外的資料應該通過重寫viewdidload函式來提供。
但是如果此時view沒有建立好,使用self.view時會重新呼叫loadview方法,這樣導致死迴圈。
例項**如下:
-(void)loadview
- (void)viewdidload
IOS中UIViewController的建立
self.window uiwindow alloc initwithframe uiscreen mainscreen bounds self.window.backgroundcolor uicolor whitecolor self.window makekeyandvisible retur...
UIViewController各個方法的載入順序
載入過程 載入第一步 id initwithnibname nsstring nibnameornil bundle nsbundle nibbundleornil 根據nib檔案例項化uiviewcontroller 這個方法是在controller的類在ib中建立,但是通過xcode例項化con...
UIViewController生命週期
uiviewcontroller生命週期 uiviewcontrol是ios程式中的乙個重要組成部分,扮演者乙個大管家的身份,管理著程式中的眾多檢視,今天看看了官方文件並做了如下一些簡單的記錄 何時載入view,載入的原則是什麼,檢視何時消失等問題,文件中講的都很詳細。controller的view...