在 Swift 中从 AppDelegate 加载控制器嵌入到 UINavigationController

Load a controller embed to a UINavigationController from AppDelegate in Swift

我需要从 AppDelegate 显示一个嵌入 UINavigationController 的 table 视图。

一般我用

    let viewController: UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("prova") as ViewController
    window?.rootViewController?.presentViewController(viewController, animated: false, completion: nil)

但它不适用于嵌入式控制器,需要如何调整此代码?

Here is a test project.

您需要使用情节提要中的标识符实例化 UINavigationController。导航控制器应该连接到故事板中的 rootViewController 并自动显示它。

let navController: UINavigationController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("provaNavController") as UINavigationController
window?.rootViewController?.presentViewController(navController, animated: false, completion: nil)

更新

由于您没有在情节提要中设置初始视图控制器,因此请使用此代码:

window = UIWindow(frame: UIScreen.mainScreen().bounds)
let navController: UINavigationController = UIStoryboard(name: "Main", bundle:nil).instantiateViewControllerWithIdentifier("provaNavController") as UINavigationController
window?.rootViewController = navController
window?.makeKeyAndVisible()

您还需要从常规项目设置中清除 Main.storyboard: