为什么我们将UIViewController传递给UINavigationController类?

问题描述:

我对这个控制器在另一个控制器业务中感到困惑。我想我们可以在不使用initWIthRootViewController的情况下初始化UInavigationController。为什么我们将UIViewController传递给UINavigationController类?

ViewController *controller = [[ViewController alloc] init]; 
controller.title = @"ViewController"; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller]; 

有时我觉得我得到了这个,但是当我看到像这样的东西时,它将我抛诸脑后。我已经阅读过文档,但是它并没有做好(对我而言)。

谢谢

+0

问题是什么? – Moxy 2012-08-05 16:06:55

+0

在标题中。谢谢! – mskw 2012-08-05 17:25:14

您的导航控制器正在管理其堆栈上的项目的显示。 rootViewController是它显示的第一个项目,并且是堆栈中的第一个项目。它与AFAIK中的其他VC不同,它不能被弹出。有时候,根视图控制器会保存对堆栈中其他VC有用的信息。

我想苹果公司可以让你在安装过程中推视图控制器,但他们认为根视图控制器的概念是一个很好的概念,我可以看到它如何帮助IB/Storyboard实现。

+0

如果我有一个主视图,直到点击一个按钮才使用导航控制器,该主视图是否也有根控制器? – mskw 2012-08-05 19:13:20