當我們說一個界面的時候往往都會談到生命周期,所謂生命周期,通俗地說是指對象的生老病死,對於ViewController來說,則是指一個界面從初始化到注銷的過程。
我們知道ViewController在iOS開發中成為視圖控制器,一般來說控制一個界面,有的是對於一個特定類型的界面,如UITableViewController,有時候是指一個界面框架,如UINavigationViewController,更多時候,是指我們自定義的界面。
創建一個界面對象是,一般是兩種方法,一種是用storyboard(或者是以前的Nib文件),另一種是用代碼來自行定義界面元素。
對於一個界面來說,其生命周期過程通常可分為下面幾個步驟:
alloc initWithNibName loadView viewDidLoad viewWillAppear viewDidAppear viewWillDisappear viewDidDisappear dealloc其各自代表的過程從其命名就大致可以看出來,從初始化,到加載,到顯示,到不顯示,到注銷。大致是這麼一個過程。
我們添加界面元素時一般是在viewDidLoad方法中,而在Appear方法中一般會進行一些界面初始調用的內容,在Disappear中往往就是一些在注銷界面前要做的一些處理了,如保存數據等。
需要注意的是iOS對一個界面生命歷程的處理:
當啟動一個程序是,會調用界面的viewDidLoad、viewWillAppear、viewDidAppear方法; 當點擊Home鍵回到桌面時,注意並不會調用Disppear的相關方法; 當雙擊Home鍵刪除應用時,才會調用viewWillDisappear、viewDidDisappear方法。iOS 4以後,引入了後台概念,view會被掛起,但並不會調用Appear和Disappear相關方法。
此外,只有用代碼自定義界面,而不是用nib文件或者storyboard初始化界面時,才會調用loadView方法,loadView方法只會調用一次,而viewDidLoad方法可能會調用多次。
其實對於生命周期的理解更多的是幫助在開發過程中在更合適的地方進行一些工作,希望能幫到大家~