iOS - Navigationcontroller与带导航栏的Viewcontroller

时间:2017-10-31 12:52:36

标签: ios uiviewcontroller uinavigationcontroller uinavigationbar

我是iOS新手,并不太了解Navigationcontrollers与使用带导航栏的Viewcontroller相比的好处。我试过研究这个,但我能找到的最佳答案是3年前的这个链接" https://www.reddit.com/r/swift/comments/2krv5p/why_would_you_use_a_navigation_controller_over_a/"总之,提到它是由于iOS首次出现时难以实现这一点。然后它继续解释它仍然有一些当前的实用性,因为你必须使用导航栏编写自己的segue,而导航控制器会自动执行它。

快进到今天,我们可以简单地按住控制按钮并创建一个不输入代码的segue。因此,我试图弄清楚导航控制器与具有导航栏的视图控制器的优点是什么。因为除了这个微小的好处之外,我觉得导航控制器不是那么直观和干净,因为它创造了一个未使用的"控制器。

我还试图找出哪种方式可以让我更灵活,如果我决定增加页面数量,因为我意识到导航栏和导航控制器栏的高度有两个不同的高度。 (这对我来说很奇怪,我不明白为什么会这样。)

谢谢。

1 个答案:

答案 0 :(得分:1)

不要将UINavigationController与视觉"导航栏"混淆。

UINavigationController为您处理视图控制器管理...您将VC推送,推送,推送到堆栈,然后(通常使用导航栏中的内置“后退”按钮)弹出,弹出,将它们从堆栈中弹回。控制器还可以处理为您设置标题。这是非常常见的应用程序" flow"并且是用户非常熟悉(和舒适)的UI / UX。

如果您不想使用推/弹导航,可以添加"导航栏"在你看来,如果你真的想。当然,就此而言,您可以在顶部添加任何视图 - 它不必是UINavigationBar对象。实际上,添加导航栏而不标准导航UX可能会让用户感到困惑。

至于"拖放" segue的创造......看到这里的问题并不常见,我已经创造了所有这些细分,但我无法回到我在哪里。"这通常通过使用导航控制器的推/弹而不是(看似)随机段来解决。

相关问题