如何将viewcontrollers添加到我的导航控制器?

时间:2012-06-10 15:00:43

标签: objective-c ios uiviewcontroller uinavigationcontroller

我正在开发一个应用程序,我在UINavigationController中使用AppDelegate。在发布时,我使用UIViewController初始化它。

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

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

但是,我想在UIViewControllers添加其他UINavigatioNController,但我知道每次我想重新初始化UINavigationController都不是一个好习惯。使用其他UIViewControllers。请告诉我正常的做法?

2 个答案:

答案 0 :(得分:5)

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

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

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

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

答案 1 :(得分:2)

UINavigationController只接受一个UIViewController。

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

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

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