以编程方式创build标签栏控制器后,如何添加导航界面(Swift)

AppDelegate/didFinishLaunchingWithOptions上创buildTabBarController之后,如何在Swift上以编程方式添加导航接口。 这是我目前的代码:

 self.window = UIWindow(frame: UIScreen.mainScreen().bounds) let tabBarController = UITabBarController() let purchaseViewController = PurchaseViewController(nibName: "PurchaseViewController", bundle: nil) let financeViewController = FinanceViewController(nibName: "FinanceViewController", bundle: nil) tabBarController.viewControllers = [purchaseViewController, financeViewController] self.window!.rootViewController = tabBarController self.window!.makeKeyAndVisible() 

我在看文档。 它有以下准则

 - (void)applicationDidFinishLaunching:(UIApplication *)application { self.tabBarController = [[UITabBarController alloc] init]; MyViewController1* vc1 = [[MyViewController1 alloc] init]; MyViewController2* vc2 = [[MyViewController2 alloc] init]; MyViewController3* vc3 = [[MyViewController3 alloc] init]; MyNavRootViewController* vc4 = [[MyNavRootViewController alloc] init]; UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:vc4]; NSArray* controllers = [NSArray arrayWithObjects:vc1, vc2, vc3, navController, nil]; tabBarController.viewControllers = controllers; window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; window.rootViewController = tabBarController; [window makeKeyAndVisible]; } 

问题,我不知道如何在Swift上正确地做到这一点。 我正在寻找安装和修改NavigationBarAppDelegate中的一个单独的方法。 有什么想法吗?

要创build导航控制器,请使用:

 var navigationController = UINavigationController(rootViewController: viewController)); 

然后把它放在数组中:

 tabBarController.viewControllers = [purchaseViewController, financeViewController, navigationController] 

但是,只有在视图控制器加载后,才能将UIControls添加到导航栏。 在applicationDidFinishLaunching:这是不可能的,因为navigationBar是零。 正确的方法是将控件添加到viewDidLoad()中的navigationBar