Storyboard 啟動流程
sb啟動過程
- Info.plist(獲取main interface,storyboard等信息)
- appdelegate.swift -> didFinishLaunchingWithOptions(加載并顯示啟動畫面)->啟動完成
- 加載main interface的storyboard
- 調用viewDidLoad()加載完成界面
- info.plist中指定了啟動的storyboard
- 同一個storyboard中可以有很多個界面
- storyboard中通過Enty Point 指定第一個界面(initial ViewController)
指定第一個界面
pic2
代碼啟動過程
- Info.plist(獲取信息)
- AppDelegate.swift -> DidFinishLaunchingWithOptions(加載并顯示啟動畫面)
- 代碼加載窗口和頁面
因為沒有main的storyboard,因此要在application加載并顯示啟動畫面的函數中創建keywindow和rootViewController
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
print("啟動完成")
//加載窗口和頁面
//獲取屏幕高度寬度
let rect = UIScreen.mainScreen().bounds
self.window = UIWindow(frame:rect)
//設置要顯示的一個界面(選擇viewcontroller入口)
let viewCont = ViewController()
//設置rootViewController,也就是顯示的第一個界面
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刪除 - 程序至少需要一個keywindow
- 程序至少需要一個rootViewController
創建keywindow
self.window = UIWindow(frame: rect)
創建并指定rootViewController
self.window?.rootViewController = ViewController()
顯示窗口
self.window?makeKeyAndVisible()
程序生命周期
程序生命周期圖