UIViewController載入過程

2021-09-07 22:05:20 字數 1237 閱讀 8927

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...