为什么AppDelegate中的窗口为nil

时间:2014-11-23 19:15:34

标签: ios cocoa-touch swift

我需要从AppDelegate呈现视图控制器,所以我编写了以下代码:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let authViewController = storyboard.instantiateViewControllerWithIdentifier("ViewController") as ViewController
if let keyWindow = UIApplication.sharedApplication().keyWindow {
    keyWindow.rootViewController = authViewController
}

不幸的是,windowkeyWindow都是nil。为什么呢?

1 个答案:

答案 0 :(得分:35)

如果不使用主界面选项,则需要自己创建窗口:

window = UIWindow(frame:UIScreen.mainScreen().bounds)

Swift 3.0

self.window = UIWindow(frame: UIScreen.main.bounds)

然后使用window调用上面的代码。

最后,在窗口上调用makeKeyAndVisible()