window 創(chuàng)建與加載
- view 最高層級(jí)是window迈着, UIwindow是UIView的子類(lèi)
- app 沒(méi)有sb
創(chuàng)建
main windows 通過(guò) Info.plist的 key “Main storyboard
file base name” ( UIMainStoryboardFile )加載Window
同時(shí)設(shè)置還window的delegate 屬性 所有操作都在這個(gè)代理屬性之前didFinishLaunchingWithOptions: 完成
加載
lazy var windows : UiWindow? ={
return MyWindow()
}
創(chuàng)建main windows
- app 沒(méi)有sb
1.點(diǎn)擊target 找到In the General pane, 選中 “Main”并且刪除
2.刪除 Main.storyboard 和 ViewController.swift 從工程中
3.刪除 AppDelegate.swift.
4.通過(guò)代碼加載window
import UIKit
@UIApplicationMain
class AppDelegate : UIResponder, UIApplicationDelegate {
var window : UIWindow?
func application(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)
-> Bool {
self.window = UIWindow()
self.window!.rootViewController = UIViewController()
self.window!.backgroundColor = UIColor.whiteColor()
self.window!.makeKeyAndVisible()
return true
}
}
加載 main window
self.window = MyWindow()
獲取window實(shí)例方式
- 如果一個(gè)UIView在界面上,那么 window property 指向window實(shí)例也可以用這種方法檢驗(yàn) UIView是否存在
let w = UIApplication.sharedApplication().delegate!.window!!
let w = (UIApplication.sharedApplication().delegate as! AppDelegate).window!
let w = UIApplication.sharedApplication().keyWindow!這種方法系統(tǒng)會(huì)創(chuàng)建臨時(shí)window 把它作為application’s key window