假設我不使用故事板。在所有示例中,我看到window
應用程序委託中的屬性在willFinishLaunchingWithOptions
或didFinishLaunchingWithOptions
中初始化。爲什麼不在對象初始化步驟?我試圖做到這一點,似乎一切工作正常。實現UIApplicationDelegate協議的窗口屬性
更新:更清楚。此代碼是否包含任何隱藏的問題?
class MyAppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow? = UIWindow(frame: UIScreen.mainScreen().bounds)
func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
window?.rootViewController = UIViewController() //just template to make compile possible
window?.makeKeyAndVisible()
return true
}
/* ... */
}
這是iOS的項目模板的蘋果圖案。當然你可以在AppDelegate之外初始化和設置關鍵窗口。而KUDO不使用SB;) –