Objective c 如何将ViewController添加到我的导航控制器?

Objective c 如何将ViewController添加到我的导航控制器?,objective-c,ios,uiviewcontroller,uinavigationcontroller,Objective C,Ios,Uiviewcontroller,Uinavigationcontroller,我正在开发一个应用程序,其中我正在AppDelegate中使用UINavigationController。在启动时,我使用UIViewController初始化它 self.navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; [self.navigationController setNavigationBarHidden:YES]; [wind

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

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

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

但是,我想将其他
UIViewControllers
添加到
uinavigationcontrollers
,但我知道每次我想使用其他
UIViewControllers
时,重新初始化
uinavigationcontrollers
不是一个好的做法。请告诉我通常的做法好吗?

一个UINavigationController只需要一个UIViewController

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

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

文档:

如果您确切地知道希望视图控制器堆栈是什么,那么您可以直接设置它们

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

NSArray *stack = [NSArray arrayWithObjects:overViewController, tableViewController, newItemViewController, nil];
navController.viewControllers = stack;
请注意,这将完全删除旧堆栈。导航视图控制器中的任何视图控制器都将丢失