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()

程序生命周期

程序生命周期图
整个应用由事件驱动
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容