1、程序運行起來,通過main函數入口創(chuàng)建UIApplication,同時設置代理,創(chuàng)建完成application,想要顯示View,需要添加UIWindow(特殊的View,存活于整個生命周期,確保添加的內容可以顯示)。
2、設置window的根控制器,管理需要顯示的View
3、View的創(chuàng)建

view的創(chuàng)建.jpg
a. 如果重寫loadView,就根據自定義的view創(chuàng)建view
b. 如果沒有重寫loadView,就去查看有沒有storyboard,有storyboard,就根據storyboard里描述的view創(chuàng)建;
c. 如果沒有storyboard,就去查看有沒有指定的xib,有指定的xib,就根據xib里描述的view創(chuàng)建;
d. 如果沒有指定的xib,即nibName為nil時,就查看有沒有與xib的擁有者同名的xib,但優(yōu)選查看沒有Controller的xib,如果查不到,就查看有沒有與xib的擁有者完全同名的xib,如:xib的擁有者是ViewController,xib的文件名是View,就優(yōu)先查看View.xib,根據它描述的view創(chuàng)建;如果沒有文件名為View的xib,就去查看有沒有名字為ViewController的xib,如果有就根據xib里描述的view創(chuàng)建
e. 如果以上的情況都沒有,就創(chuàng)建一個空的View
4、View的聲明周期

view的生命周期.jpg
loadView:第一次使用view的時候調用
viewDidLoad:控制器的view加載完成的時候調用
viewWillAppear:控制器的view即將顯示的時候調用
viewDidAppear:控制器的view完全顯示的時候調用
viewWillDisappear:控制器的view即將消失的時候調用
viewDidDisappear:控制器的view完全消失的時候調用
viewWillLayoutSubviews:控制器的view即將布局的時候調用
viewDidLayoutSubviews:控制器的view完全布局的時候調用
viewWillUnload:控制器的view即將銷毀
viewDidUnload:控制器的view完全銷毀