导航栏未显示在嵌入式导航控制器中

时间:2017-02-15 20:24:45

标签: ios swift xcode swift3

我正在尝试在屏幕顶部显示导航栏,但它没有显示在嵌入式导航控制器中。

以下是故事板中的内容: enter image description here

这是在模拟器中:

enter image description here

如您所见,我在屏幕底部创建了一个自定义TabBar(跟this tutorial之后),以便我可以在不同视图之间导航。

我相信我将不得不以编程方式加载导航栏,因为我找到的唯一解决方案是将导航控制器设置为初始视图控制器,但我已将另一个视图设置为初始视图,因此我可以'那样做。

3 个答案:

答案 0 :(得分:3)

问题:

当您使用storyBoard标识符实例化viewController时,即使您已向其添加了NavigationController,它们也不会带有免费的嵌入式导航控制器。因此,您将向视图栏VC添加一个没有导航栏的viewController。

<强>解决方案:

解决方案1:如果您希望每个子视图控制器都携带自己的导航控制器,从而拥有自己的导航堆栈,请为您的子视图控制器后面的导航控制器提供故事板标识符,并实例化导航控制器本身而不是ViewController 。并在标签栏中添加NavigationController,查看VC的孩子。由于导航控制器默认加载嵌入式VC,因此您将看到带有导航栏的子VC。

解决方案2:您所关注的只是导航栏,而不是在包含VC的标签栏后面添加导航控制器,只需查看。

希望有所帮助

答案 1 :(得分:0)

您是否尝试过将导航栏限制在视图中?否则它可能会移出屏幕。

答案 2 :(得分:0)

您需要将标签栏控制器segue指向视图的导航控制器 - 否则,如果您将segue直接指向视图,则只需加载视图而不连接任何导航控制器。