如何仅在Swift iOS的最后一个屏幕上显示导航栏?

问题描述:

如果我总共有6个屏幕,并且我想在我的最后两个场景之间添加导航控制器,所以我的最终屏幕具有导航栏/通过导航控制器导航,有没有简单的方法可以做到这一点?如何仅在Swift iOS的最后一个屏幕上显示导航栏?

我已经尝试在我的第一个场景中嵌入导航控制器,并将我的segues切换为“show”,并将navigationbar.isHidden设置为true,然后在我的最后一个屏幕上尝试在viewdidappear中将其设置为false,然后在viewdiddissapear中再次成为真实。

首先它没有工作,(我只是需要修补它可能),但其次,它似乎很多“工作”只是为了在两个屏幕之间进行导航。

您是否需要在整个项目中进行导航才能在两个特定屏幕之间进行导航?什么是最好的方法来做到这一点?

如果你有一个故事板,你应该能够选择倒数第二个屏幕,并使用编辑器 - >嵌入viewController - >导航控制器菜单项。

+0

我觉得我昨天晚上已经尝试了一百次,今天的工作就像一个魅力。 谢谢!这比在整个项目中导航并隐藏栏杆要简单得多。 – user6820041

+0

我确实有一个问题。所以我在我的屏幕之间传递变量以准备segue,并且在嵌入导航控制器时,我收到一个错误,指出目标VC不再是我正在分配的目标,而现在它是Nav Controller,它是有意义的。 有没有一种平稳的方法来保持现在正在使用此导航控制器传递的变量? 或者,有什么办法只是强制导航栏到视图上而没有导航控件呢?我正在使用JSQMessages,只需要一种离开屏幕的方式。 – user6820041

+0

我没有快速解决方案。我尽量避免在控制器之间传递数据,以避免类似的问题发生。如果您使用MVC结构,则每个控制器只需向模型询问需要显示的信息,而不是具有内置依赖性。 –

在要隐藏navBar添加以下的viewDidLoad

self.navigationController!.isNavigationBarHidden = true