4

我正在开发一个应用程序,我UINavigationControllerAppDelegate. 在启动时,我用UIViewController.

 self.navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self.navigationController setNavigationBarHidden:YES];

[window addSubview:self.navigationController.view]; like this.

但是,我想将 other 添加UIViewControllers到,但我知道每次我想使用 other 时UINavigatioNController重新初始化不是一个好习惯。请你能告诉我这样做的正常方法吗?UINavigationControllerUIViewControllers

4

2 回答 2

5

如果你确切地知道你想要你的视图控制器堆栈是什么,那么你可以直接设置它们。

例如,假设我希望导航控制器上的视图以 OverView > TableView > NewItemView 开始。我希望人们在启动应用程序后立即创建他们的第一个条目。在我的导航控制器中,我只需要在-application:didFinishLaunchingWithOptions:.

NSArray *stack = [NSArray arrayWithObjects:overViewController, tableViewController, newItemViewController, nil];
navController.viewControllers = stack;

请注意,这会完全删除旧堆栈。导航视图控制器中的任何视图控制器都将丢失。

于 2012-06-10T15:56:23.527 回答
2

一个 UINavigationController 只需要一个 UIViewController。

要使用其他 UIViewController,必须通过以下方法从 rootViewController 推送它们:

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated

文档:http: //developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html

于 2012-06-10T15:04:50.447 回答