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

时间:2015-02-26 19:48:42

标签: ios cocoa-touch uiviewcontroller

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

5 个答案:

答案 0 :(得分:10)

只是我的两分钱:

UIViewController表示单个视图,您可以将此视图控制器中的按钮设置为另一个UIViewController。如果你想要回到第一个UIViewController,你将不得不担心在第二个视图控制器中放一个按钮,然后返回第一个视图。如果您正在深入查看控制器,那么必须记住让用户回到以前的视图控制器,这可能很乏味。

UINavigationController为您完成了大量繁琐的工作。如上所述,它包含一堆UIViewControllers。它将在顶部创建一个导航栏,使您可以轻松地返回视图控制器的层次结构。

简而言之,如果您希望用户轻松浏览视图控制器的层次结构,请将UIViewControllers嵌入到UINavigation控制器中。

答案 1 :(得分:1)

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

虽然UIViewController可以被认为是代表单个“屏幕”,但顾名思义,UINavigationController被用作能够导航多个“屏幕”的手段。

来自文档:

  

UINavigationController类实现了一个专门的视图控制器,用于管理分层内容的导航。此导航界面可以有效地呈现您的数据,并使用户更容易浏览该内容。您通常按原样使用此类,但在iOS 6及更高版本中,您可以继承自定义类行为。

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

答案 2 :(得分:0)

请参阅查看控制器目录中的Navigation Controller讨论。

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

答案 3 :(得分:0)

好的,谢谢大家帮我找到明确的答案。

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

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

如果我错了,请纠正我。

答案 4 :(得分:0)

  1. UINavigation Controller是两个或多个视图控制器的组合,它们通过“Ios”的“segue”功能连接。使用导航控制器的好处是我们可以使用每个屏幕上的默认“后退”按钮轻松地在不同屏幕之间导航。我们不需要给任何单独的按钮移回到前一个屏幕。 而ViewController提供单个屏幕&我们可以使用“segue”连接更多屏幕,但我们还必须设计一个“后退”按钮以导航到上一个屏幕。

  2. 如果一个选项属于另一个选项,我们应该使用导航控制器。类似于iPhone设置 - >移动数据选项 - >语音 - > 4G或3G或2G。它是菜单的层次结构,所以这里导航控制器比使用UIController更好。 我们应该使用带有“segue”的UiController,以防万一 我们必须在multiple.Like中选择一个选项 - 照片 - >有许多文件夹,其中任何一个都被选中,即收藏夹或人物或地点。