awakeFromNib
當(dāng) view 被從 Storyboard 或者 Nib 文件中加載出來(lái)時(shí)會(huì)調(diào)用這個(gè)方法,只會(huì)在所有對(duì)象被創(chuàng)建后調(diào)用。
這個(gè)方法在執(zhí)行l(wèi)oadNibNamed:owner:,storyboardWithName:bundle:這一類方法時(shí)會(huì)調(diào)用。
此方法覆蓋時(shí)需要調(diào)用 super 方法。默認(rèn)的 super 方法里沒(méi)有實(shí)現(xiàn)。
loadView()
View Controller 創(chuàng)建后需要加載 self.view 時(shí)會(huì)調(diào)用這個(gè)方法。此方法不應(yīng)該被直接調(diào)用。
如果我們的界面是在 Storyboard 中創(chuàng)建的,那我們也不應(yīng)該覆蓋這個(gè)方法。
此方法覆蓋時(shí)不該調(diào)用 super 方法。
viewDidLoad()
當(dāng) View Controller 的 View 被加載入后會(huì)調(diào)用這個(gè)方法,因此正常情況下只會(huì)調(diào)用一次。
此方法覆蓋時(shí)需要調(diào)用 super 方法。
viewWillAppear
當(dāng) View 將要被添加到 View Hierarchy 中時(shí)會(huì)調(diào)用這個(gè)方法,每一次 View 將要顯示時(shí)都會(huì)調(diào)用。在這個(gè)方法被調(diào)用時(shí),也是在顯示 View 所需要的動(dòng)畫(huà)被配置前。
這個(gè)時(shí)候在做一些和 frame 相關(guān)的操作時(shí)仍會(huì)出錯(cuò),在這里 View 將要被加入 View Hierarchy,但是仍舊沒(méi)有被添加進(jìn)去。
此方法覆蓋時(shí)需要調(diào)用 super 方法。
viewWillLayoutSubviews
在 ViewController.view 將要布局 Subviews 時(shí)調(diào)用。
在這之后 AutoLayout 會(huì)改變布局。
viewDidLayoutSubviews
已經(jīng)布局完成,也可以做一些操作。
已通過(guò) AutoLayout 布局。
viewDidAppear
此時(shí)界面已經(jīng)被顯示出來(lái)了,做一些操作時(shí)可能會(huì)讓界面變化可見(jiàn)。
viewWillDisappear
在界面將要消失時(shí)調(diào)用
viewDidDisappear
界面消失后調(diào)用。
因?yàn)榇藭r(shí)界面的布局相當(dāng)于發(fā)生了變化,viewWillLayoutSubviews和viewDidLayoutSubviews也將在他們之間調(diào)用。