當(dāng)我們說一個(gè)界面的時(shí)候往往都會(huì)談到生命周期盏阶,所謂生命周期干花,通俗地說是指對(duì)象的生老病死陈肛,對(duì)于ViewController來說揍鸟,則是指一個(gè)界面從初始化到注銷的過程。
我們知道ViewController在iOS開發(fā)中成為視圖控制器句旱,一般來說控制一個(gè)界面阳藻,有的是對(duì)于一個(gè)特定類型的界面,如UITableViewController谈撒,有時(shí)候是指一個(gè)界面框架腥泥,如UINavigationViewController,更多時(shí)候啃匿,是指我們自定義的界面蛔外。
創(chuàng)建一個(gè)界面對(duì)象是,一般是兩種方法溯乒,一種是用storyboard(或者是以前的Nib文件)夹厌,另一種是用代碼來自行定義界面元素。
對(duì)于一個(gè)界面來說裆悄,其生命周期過程通趁疲可分為下面幾個(gè)步驟:
- alloc
- initWithNibName
- loadView
- viewDidLoad
- viewWillAppear
- viewDidAppear
- viewWillDisappear
- viewDidDisappear
- dealloc
其各自代表的過程從其命名就大致可以看出來,從初始化光稼,到加載崖技,到顯示,到不顯示钟哥,到注銷。大致是這么一個(gè)過程瞎访。
我們添加界面元素時(shí)一般是在viewDidLoad方法中腻贰,而在Appear方法中一般會(huì)進(jìn)行一些界面初始調(diào)用的內(nèi)容,在Disappear中往往就是一些在注銷界面前要做的一些處理了扒秸,如保存數(shù)據(jù)等播演。
需要注意的是iOS對(duì)一個(gè)界面生命歷程的處理:
- 當(dāng)啟動(dòng)一個(gè)程序是冀瓦,會(huì)調(diào)用界面的viewDidLoad、viewWillAppear写烤、viewDidAppear方法翼闽;
- 當(dāng)點(diǎn)擊Home鍵回到桌面時(shí),注意并不會(huì)調(diào)用Disppear的相關(guān)方法洲炊;
- 當(dāng)雙擊Home鍵刪除應(yīng)用時(shí)感局,才會(huì)調(diào)用viewWillDisappear、viewDidDisappear方法暂衡。
iOS 4以后询微,引入了后臺(tái)概念,view會(huì)被掛起狂巢,但并不會(huì)調(diào)用Appear和Disappear相關(guān)方法撑毛。
此外,只有用代碼自定義界面唧领,而不是用nib文件或者storyboard初始化界面時(shí)藻雌,才會(huì)調(diào)用loadView方法,loadView方法只會(huì)調(diào)用一次斩个,而viewDidLoad方法可能會(huì)調(diào)用多次胯杭。
其實(shí)對(duì)于生命周期的理解更多的是幫助在開發(fā)過程中在更合適的地方進(jìn)行一些工作,希望能幫到大家~