init
—> loadView
—> viewDidLoad
—>viewWillAppear
—> viewWillLayoutSubviews
—> viewDidLayoutSubviews
—>viewDidAppear
—> viewWillDisappear
—> viewDidDisappear
bash
init
—> loadView
—> viewDidLoad
—>viewWillAppear
—> viewWillLayoutSubviews
—> viewDidLayoutSubviews
—>viewDidAppear
—> viewWillDisappear
—> viewDidDisappear
—>接收到內存警告
—>viewWillUnload
—> viewDidUnload
app
應該只有相關數據的初始化,並且這些數據是比較關鍵的數據。 init方法中實例化必要的對象(聽從LazyLoad思想)佈局
view 控制器默認會註冊memory warning notification。 當第一次使用控制器的view時,會調用loadView方法建立view,通常在這裏自定義view(如手動建立本身的視圖,那麼應該覆蓋這個方法並將它們賦值給試圖控制器的 view 屬性); 視圖控制器自帶的視圖並非視圖控制器一建立就立刻建立的,而是被訪問時才建立即自動調用loadView,這個方法返回時視圖就建立好了動畫
- (void)loadView{
//self.view.backgroundColor = [UIColor greenColor];//這時候view還沒建立,程序會崩
[super loadView];
//loadView返回以後,view建立好了
self.view.backgroundColor = [UIColor greenColor];
}
複製代碼
當控制器的view建立完畢時會調用(視圖控制器自帶的視圖建立完就會自動調用這個方法),也就是在loadView後調用,通常在這裏添加子控件、初始化數據。 只有在視圖控制器將其視圖載入到內存以後才調用該方法,這是執行任何其餘初始化操做的入口spa
當試圖將要添加到窗口中而且還不可見的時候或者上層視圖移出圖層後本視圖變成頂級視圖時調用該方法。通常在View被添加到superView以前,切換動畫以前調用。在這裏進行一些顯示前的處理。好比鍵盤彈出、一些特殊的動畫(好比狀態條和navbar的顏色)、改變視圖方向等的操做。code
通常用於顯示前,對子控件進行佈局。對象
子控件佈局完成,能夠在這裏對子控件進行一些初始化。內存
當視圖添加到窗口中之後或者上層視圖移出圖層後本視圖變成頂級視圖時調用,用於放置那些須要在視圖顯示後執行的代碼。資源
當應用程序接收到系統的內容警告時,就有可能調用控制器的didReceiveMemoryWarning方法。 它的默認作法是:當控制器的view不在窗口上顯示時,就會直接銷燬,而且調用viewDidUnload方法it