當(dāng)啟動(dòng)一個(gè)程序的時(shí)候,程序的啟動(dòng)過程是這樣的.
加載main函數(shù)-->加載UIApplicationMain函數(shù),根據(jù)UIApplicationMain創(chuàng)建UIApplication對(duì)象和UIApplication的Delegate對(duì)象,啟動(dòng)主循環(huán)-->
- 1.沒有storyboard時(shí):
-->調(diào)用application: didFinishLaunching方法-->創(chuàng)建和設(shè)置UIWindows的rootViewController-->顯示窗口 - 2.有storyboard時(shí):
-->根據(jù)Info.plist加載最主要的storyboard-->創(chuàng)建和設(shè)置UIWindows的rootViewController-->顯示窗口
初始化一個(gè)控制器的時(shí)候,可能從代碼創(chuàng)建一個(gè)view,可能從storyboard創(chuàng)建,也可能從xib中加載一個(gè)view.三者有一定的優(yōu)先級(jí)順序.
- 1.第一優(yōu)先級(jí)是loadView函數(shù).
- 2.第二優(yōu)先級(jí)是storyboard.
- 3.優(yōu)先級(jí)最低的是xib文件,當(dāng)前兩者都不存在時(shí)才會(huì)根據(jù)NibName加載view.
對(duì)于沒有設(shè)定NibName的xib文件,系統(tǒng)會(huì)優(yōu)先尋找默認(rèn)為"XXXView.xib"名稱的view,其次尋找默認(rèn)名稱為"XXXViewController.xib"名稱的view.當(dāng)以上都沒有的情況下,系統(tǒng)最終會(huì)創(chuàng)建一個(gè)空的view顯示出來.
由于筆者知識(shí)有限,如有錯(cuò)誤,歡迎指出。