VIEWCONTROLLER的啟動流程
阿新 • • 發佈:2017-06-16
super 而且 (The view that the controller manages.)被請求且
ViewController的啟動流程:
init/initWithCoder -> awakeFromNib -> loadView -> viewDidLoad -> viewWillApear -> viewDidApear
init
用代碼創建的View或者ViewController使用這個初始方法
initWithCoder
使用IB創建的View或者ViewController使用這個初始方法
loadView
loadView是ViewController中的一個方法,而且沒有必要就永遠不能主動調用這個函數。
因為ViewController會在view Property
view
的值為nil
的時候調用這個函數。如果是使用IB創建view並初始化ViewController則應該使用init withNibName: bundle:
方法,而且不應該重載loadView函數。
如果是使用如果代碼手動創建該ViewController中的view
則應該重載這個函數,而且不必調用[super loadView]
。
awakeFromNib
當.nib文件被加載的時候,會發送一個awakeFromNib的消息到.nib文件中的每個對象,每個對象都可以定義自己的awakeFromNib函數來響應這個消息,執行一些必要的操作。也就是說通過nib文件創建view對象是執行awakeFromNib。
如果通過代碼手動創建該viewController則不執行awakeFromNib
viewDidLoad
在viewController加載了相關的view之後被調用,且viewDidLoad無論通過什麽途徑加載(實例化)都會執行這個方法。
awakeFromNib和loadView都是在viewDidLoad之前執行的。
如有錯誤或不足請指正
VIEWCONTROLLER的啟動流程