导航控制器和视图控制器之间的区别?

导航控制器和视图控制器之间的区别? 我的意思是我们该如何决定何时使用导航控制器或普通的视图控制器?

只是我的两分钱:

一个UIViewController表示一个单一的视图,你可以把这个视图控制器中的button继续到另一个UIViewController。 如果你想继续回到第一个UIViewController,你将不得不担心把第二个视图控制器中的button放回第一个。 如果你深入到视图控制器,这可能是乏味的,必须记住让用户回到以前的视图控制器。

一个UINavigationController为你做了很多这个单调乏味的工作。 如上所述,它包含一堆UIViewControllers。 它将在顶部创build一个导航栏,使您可以轻松地恢复视图控制器的层次结构。

简而言之,如果你有一个你希望用户轻松浏览的视图控制器的层次结构,将你的UIViewControllers插入一个UINavigation控制器。

这是一个非常简短的高层次概述。

而UIViewController可以被认为代表一个“屏幕”,顾名思义,UINavigationController被用作能够导航多个“屏幕”的一种手段。

从文档:

UINavigationController类实现了pipe理分层内容导航的专用视图控制器。 此导航界面可以有效地呈现您的数据,并使用户更容易浏览该内容。 您通常使用这个类,但在iOS 6和以后,你可以inheritance自定义类的行为。

请参阅以下UINavigationController文档的其余部分: https : //developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/index.html

请参阅View Controller目录中的导航控制器讨论

底线,导航控制器实际上一个视图控制器,但它恰好是一个呈现和导航之间的其他视图控制器。

好的,谢谢大家帮助我find明确的答案。

导航控制器由导航栏和工具栏组成,可以从导航栈中的视图控制器中移出。因此导航控制器中可以有许多视图控制器。

在视图控制器中,我们没有这个设施,它代表一个单一的屏幕视图。

如果我错了,请纠正我。

  1. UINavigation Controller是两个或更多视图控制器的组合,通过“Ios”的“segue”function连接。 使用导航控制器的好处是,我们可以轻松地在不同的屏幕之间导航,每个屏幕上都有默认的“返回”button。 我们不需要给任何个人button返回到前一个屏幕。 而ViewController提供了一个单一的屏幕,我们可以使用“segue”连接更多的屏幕,但我们也必须devise一个“返回”button导航到上一个屏幕。

  2. 我们应该使用导航控制器,以防止一个选项驻留在另一个选项中。就像iPhone设置 – >移动数据选项 – >语音 – > 4G或3G或2G。 这是一个菜单的层次结构,所以在这里导航控制器是比使用UIController更好的select。 我们应该使用UiController的“segue”,以防万一我们必须从多个选项中select一个。像 – 照片 – >有很多文件夹,其中,任何一个被选中,是collections夹或人物或地方。