Note 10 應用程序啟動流程

Storyboard 啟動流程

sb啟動過程

  1. Info.plist(獲取main interface,storyboard等信息)
  2. appdelegate.swift -> didFinishLaunchingWithOptions(加載并顯示啟動畫面)->啟動完成
  3. 加載main interface的storyboard
  4. 調用viewDidLoad()加載完成界面
  • info.plist中指定了啟動的storyboard
  • 同一個storyboard中可以有很多個界面
  • storyboard中通過Enty Point 指定第一個界面(initial ViewController)
指定第一個界面

pic2

代碼啟動過程

  1. Info.plist(獲取信息)
  2. AppDelegate.swift -> DidFinishLaunchingWithOptions(加載并顯示啟動畫面)
  3. 代碼加載窗口和頁面

因為沒有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 nameMain刪除/或者程序信息中的Main interface將Main刪除
  • 程序至少需要一個keywindow
  • 程序至少需要一個rootViewController

創建keywindow

self.window = UIWindow(frame: rect)

創建并指定rootViewController

self.window?.rootViewController = ViewController()

顯示窗口

self.window?makeKeyAndVisible()

程序生命周期

程序生命周期圖
整個應用由事件驅動
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容