1. 程式人生 > >iOS開發UI篇-viewDidLoad, viewWillDisappear, viewWillAppear等區別及各自的載入順序

iOS開發UI篇-viewDidLoad, viewWillDisappear, viewWillAppear等區別及各自的載入順序

viewWillAppear: 

Called when the view is about to made visible. Default does nothing檢視即將可見時呼叫。預設情況下不執行任何操作

viewDidAppear: 

Called when the view has been fully transitioned onto the screen. Default does nothing檢視已完全過渡到螢幕上時呼叫

viewWillDisappear:

Called when the view is dismissed, covered or otherwise hidden. Default does nothing檢視被駁回時呼叫,覆蓋或以其他方式隱藏。預設情況下不執行任何操作

viewDidDisappear:

Called after the view was dismissed, covered or otherwise hidden. Default does nothing檢視被駁回後呼叫,覆蓋或以其他方式隱藏。預設情況下不執行任何操作loadView; This is where subclasses should create their custom view hierarchy if they aren't using a nib. Should never be called directly.這是當他們沒有正在使用nib檢視頁面,子類將會建立自己的自定義檢視層。絕不能直接呼叫。

viewDidLoad;Called after the view has been loaded. For view controllers created in code, this is after -loadView. For view controllers unarchived from a nib, this is after the view is set.

在檢視載入後被呼叫,如果是在程式碼中建立的檢視載入器,他將會在loadView方法後被呼叫,如果是從nib檢視頁面輸出,他將會在檢視設定好後後被呼叫。

「initWithNibName: bundle:」載入nib檔案來初始化「loadView」載入檢視「viewDidLoad」在載入檢視至記憶體後會呼叫的方法「viewDidUnload」在檢視從記憶體中釋放後會呼叫的方法 (
當記憶體過低,釋放一些不需要的檢視時呼叫)

「viewWillAppear」當收到檢視在視窗將可見時的通知會呼叫的方法

「viewDidAppear」當收到檢視在視窗已可見時的通知會呼叫的方法

「viewWillDisappear」當收到檢視將去除、被覆蓋或隱藏於視窗時的通知會呼叫的方法

「viewDidDisappear」當收到檢視已去除、被覆蓋或隱藏於視窗時的通知會呼叫的方法

「didReceiveMemoryWarning」收到系統傳來的記憶體警告通知後會執行的方法

「shouldAutorotateToInterfaceOrientation」是否支援不同方向的旋轉檢視

「willAnimateRotationToInterfaceOrientation」在進行旋轉檢視前的會執行的方法(用於調整旋轉檢視之用)


當一個檢視控制器被建立,並在螢幕上顯示的時候。 程式碼的執行順序

1、 alloc                                   建立物件,分配空間

2、init (initWithNibName) 初始化物件,初始化資料

3、loadView                          從nib載入檢視 ,通常這一步不需要去幹涉。除非你沒有使用xib檔案建立檢視

4、viewDidLoad                   載入完成,可以進行自定義資料以及動態建立其他控制元件

5、viewWillAppear              檢視將出現在螢幕之前,馬上這個檢視就會被展現在螢幕上了

6、viewDidAppear               檢視已在螢幕上渲染完成

當一個檢視被移除螢幕並且銷燬的時候的執行順序,這個順序差不多和上面的相反

1、viewWillDisappear            檢視將被從螢幕上移除之前執行

2、viewDidDisappear             檢視已經被從螢幕上移除,使用者看不到這個檢視了

3、dealloc                                 檢視被銷燬,此處需要對你在init和viewDidLoad中建立的物件進行釋放