Storyboard 啟動(dòng)流程
sb啟動(dòng)過程
- Info.plist(獲取main interface,storyboard等信息)
- appdelegate.swift -> didFinishLaunchingWithOptions(加載并顯示啟動(dòng)畫面)->啟動(dòng)完成
- 加載main interface的storyboard
- 調(diào)用viewDidLoad()加載完成界面
- info.plist中指定了啟動(dòng)的storyboard
- 同一個(gè)storyboard中可以有很多個(gè)界面
- storyboard中通過Enty Point 指定第一個(gè)界面(initial ViewController)
pic2
代碼啟動(dòng)過程
- Info.plist(獲取信息)
- AppDelegate.swift -> DidFinishLaunchingWithOptions(加載并顯示啟動(dòng)畫面)
- 代碼加載窗口和頁面
因?yàn)闆]有main的storyboard,因此要在application加載并顯示啟動(dòng)畫面的函數(shù)中創(chuàng)建keywindow和rootViewController
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
print("啟動(dòng)完成")
//加載窗口和頁面
//獲取屏幕高度寬度
let rect = UIScreen.mainScreen().bounds
self.window = UIWindow(frame:rect)
//設(shè)置要顯示的一個(gè)界面(選擇viewcontroller入口)
let viewCont = ViewController()
//設(shè)置rootViewController,也就是顯示的第一個(gè)界面
self.window?.rootViewController = viewCont
//顯示窗口(使window可視化)
self.window?.makeKeyAndVisible()
// Override point for customization after application launch.
return true
}
純代碼寫需要注意的地方:
- 必須將Info.plist中的
Main storyboard file base name
Main刪除/或者程序信息中的Main interface
將Main刪除 - 程序至少需要一個(gè)keywindow
- 程序至少需要一個(gè)rootViewController
創(chuàng)建keywindow
self.window = UIWindow(frame: rect)
創(chuàng)建并指定rootViewController
self.window?.rootViewController = ViewController()
顯示窗口
self.window?makeKeyAndVisible()