UIViewController各個方法的載入順序

2022-09-16 23:48:11 字數 3174 閱讀 6847

載入過程

載入第一步

- (id)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle *)nibbundleornil

//根據nib檔案例項化uiviewcontroller

// 這個方法是在controller的類在ib中建立,但是通過xcode例項化controller的時候用的.

//如果你的物件是uiviewcontroler的子類,那麼你必須呼叫- (id)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle*)nibbundleornil;方法去呼叫nib檔案初始化自身,即使那沒有使用nib檔案也會呼叫這個函式(預設 情況下init方法已經為你的做這件事情了),如果你呼叫這個方法,並傳遞的兩個引數為空(nil),然後類會呼叫-loadview去讀取乙個名字和你 的uiviewcontroller名字相同的nib檔案,來初始化自身。如果沒有這樣的nib檔案,你必須呼叫-setview:來設定乙個 self.view。或者過載-loadview 方法

載入第二步

- (void)loadview

當view需要被展示而它卻是nil時,viewcontroller會呼叫該方法。不要直接呼叫該方法。

如果手工維護views,必須過載重寫該方法

如果使用ib維護views,必須不能過載重寫該方法

loadview和ib構建view

作用:在需要用程式自定義view時重新,其他情況可以不用考慮

載入第三步

- (void)viewdidload

//如果loadview不能生成uiviewcontroller.view系統將會反覆呼叫loadview及viewdidload方法, 並且最終呼叫[super loadview] 方法返回uiviewcontroller.view

//過載重寫該方法以進一步定製view

//在iphone os 3.0及之後的版本中,還應該過載重寫viewdidunload來釋放對view的任何索引

//viewdidload後呼叫資料model

//在檢視載入後被呼叫,如果是在**中建立的檢視載入器,他將會在loadview方法後被呼叫,

//如果是從nib檢視頁面輸出,他將會在檢視設定好後後被呼叫。

作用:分配和載入在檢視顯示時所需要的資料

一般情況下,資料物件是通過配置view controller的屬性來提供的,view controller需要的一些額外的資料應該通過重寫viewdidload函式來提供。

載入第四步

//檢視即將可見時呼叫。預設情況下不執行任何操作

載入第五步

//檢視已完全過渡到螢幕上時呼叫

另外如果你這樣寫:

- (id)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle *)nibbundleornil

return self;

}那麼loadview和viewdidload 方法將不會被呼叫

- (void)viewwilllayoutsubviews ;

- (void)viewdidlayoutsubviews;

解除安裝過程

解除安裝第一步

//意思是在檢視將要釋放前呼叫該函式

解除安裝第二步

解除安裝第三步

- (void)viewwillunload;新增

作用:釋放顯示檢視時所需要的不難重建的資料

解除安裝第四步

- (void)viewdidunload;

//當系統記憶體吃緊的時候會呼叫該方法(注:viewcontroller沒有被dealloc)

//當檢視不再顯示時釋放那些不需要的資料。

作用:釋放檢視物件的引用和顯示檢視時所需要的不難重建的資料

//可以使用viewdidunload函式釋放檢視擁有的所有資料,當然這些資料在檢視重新載入記憶體時能夠很容易重新//建立。

//如果重建這些資料很消耗時間,那麼不必在viewdidunload函式中釋放這些資料,可以考慮在//didreceivememorywarning函式釋放這些資料物件

解除安裝第五步

- (void)didreceivememorywarning;

//釋放在viewdidunload函式中沒有釋放的資料(重建耗時的資料)

解除安裝第六步

- (void)dealloc;

//viewcontroller最後的清理工作,釋放檢視物件的引用和viewcontroller所需資料結構

- (void)didreceivememorywarning;

- (void)viewwillunload;新增

- (void)viewdidunload;

UIViewController各方法的呼叫順序

1 init方法 在init方法中例項化必要的物件 遵從lazyload思想 init方法中初始化viewcontroller本身。2 id initwithnibname nsstring nibnameornil bundle nsbundle nibbundleornil 如果 中有重寫此方法...

各個方法的優缺點

msf方法的優缺點 msf 微軟解決方案框架結構 是一組建立 開發和實現分布式企業系統應用的工作模型 開發準則和應用指南。它幫助企業融合商業和技術的目標,降低採用新技術後系統整體的費用,以及成功的應用微軟技術整合商業過程的方法。msf的特點 商業化,就是說如何把專案計畫程式設計產品直至產生效益等等,...

手勢操作各個方法的含義

在剛開始學android的時候,就覺得google的文件不咋樣,在研究手勢時,更加的感覺google的文件寫得實在是太差了。很多常量,屬性和方法,居然連個描述都沒有。沒有描述也就罷了,但是ongesturelistener裡手勢這麼多,它也沒有乙個介紹說明,在沒有進行不斷才嘗試 之前,誰能搞懂onl...