提到UIViewcontrol,每個人都不會陌生吧!平時實際開發中,每天的實際開發應該都少不了它。學過android的各位親,也對生命周期這四個字並不陌生,無論是activity,還是service,也都皆已熟識了吧。也是由於之前學android的經驗,看到後第一感覺就是,其生命周期是怎樣的呢?好吧,說了這麼多,開始進入UIViewControl的身體吧。
打開官方網站,找了下,並沒看到其生命周期的論述,反而有的是關於各種ViewControl的介紹。但從其類的方法中,我們可以看出一些端臆,但究竟是不是,還是寫下代碼測試下為好。具體代碼就不列出,記錄下其生命周期吧。
如上圖,整個過程大概如上,具體方法如下:
initWithNibName
這是controller的初始化方法,當你使用nib文件進行初始化時,將自動直接執行,也可自定義nib文件初始化。而當你並未使用nib文件,nibname將是nil,但仍可以返回一個空的UIView,並且你可以用代碼自定義自己的view.
loadView
為controller創建view,但你需要代碼自定義view時,自定義UI將寫在這個方法內。需要注意一點的是,此方法不可使用super中的view
viewDidLoad
可以做一些loadView後的操作,當然,這個方法和上面loadView方法在這個viewController沒有消亡前,皆只執行一次。類似於android的onCreate吧
viewWillAppear和viewDidAppear
這兩個放一起,是因為這兩個每當view要出現時都會執行,在還沒看到view時執行viewWillAppear,而當view添加到視圖中後,將執行此方法表示控制的view已加載。
viewWillDisappear和viewDidDisappear
這兩個是當view將消失時執行的,將要消失時調用viewWillDisappear,消失後立即調用viewDidDisappear
viewWillUnload和viewDidUnload
這兩個和上面的loadView和viewDidload對應,當收到內存警告時,在viewWillUnload中,我們可以對一些改view中的一些必要信息進行保存,已保證在view看不到的情況下,view被釋放了。而viewDidUnload方法中我們則可以釋放掉那些強引用。