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