在 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)
但它不适用于嵌入式控制器,需要如何调整此代码?
您需要使用情节提要中的标识符实例化 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:
我需要从 AppDelegate 显示一个嵌入 UINavigationController 的 table 视图。
一般我用
let viewController: UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("prova") as ViewController
window?.rootViewController?.presentViewController(viewController, animated: false, completion: nil)
但它不适用于嵌入式控制器,需要如何调整此代码?
您需要使用情节提要中的标识符实例化 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: