我正在开发一个应用程序,我在UINavigationController
中使用AppDelegate
。在发布时,我使用UIViewController
初始化它。
self.navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self.navigationController setNavigationBarHidden:YES];
[window addSubview:self.navigationController.view]; like this.
但是,我想在UIViewControllers
添加其他UINavigatioNController
,但我知道每次我想重新初始化UINavigationController
都不是一个好习惯。使用其他UIViewControllers
。请告诉我正常的做法?
答案 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