使用TabBarController时为什么隐藏分段控件?

时间:2016-06-08 14:40:29

标签: ios uitabbarcontroller uisegmentedcontrol

我想在iOS上的UITabBarController的选项卡中使用分段控件。它似乎没有它,但只要我将它嵌入TabBarController,分段控件将不会显示在导航栏中。

我是否遗漏了某些东西,或者是因为某些UI指南而不支持?我没有在Apple设计指南中找到任何内容......

这是工作版本: storyboard of working example

但在此设置中,分段控件不会显示: storyboard of disappearing segmented control

2 个答案:

答案 0 :(得分:2)

第一个问题是:你想要实现什么 - 你想提供什么样的界面?

在导航控制器中嵌入标签栏控制器非常罕见。 标签栏控制器旨在用作主应用程序导航。你可以在很多Apple应用程序(音乐,电话等)中找到它。

这些应用程序有一个带有多个导航控制器的标签栏控制器。例如,您的第一个选项卡是导航控制器,其中普通视图控制器为root。

在此控制器中,您可以设置分段控制。

Apple在其组合视图控制器接口文档(https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/CombiningViewControllers.html#//apple_ref/doc/uid/TP40011313-CH6-SW1)中描述了此行为。

<强>更新

@kaushal答案解决了你的问题......是的。但是,如果您尝试为选项卡视图控制器中包含的每个视图控制器设置导航栏的样式(可能只想为一个视图控制器添加一个按钮rightBarButtonItem),这将无效。

如果要在选项卡视图控制器的每个控制器上进行分段控制,只需隔离此控件的代码并在每个控制器中重复使用它。

这样可以达到同样的效果,但您可以使用更清晰的软件设计。

答案 1 :(得分:0)

试试这个:enter image description here

导航栏常常会抛出堆栈,它会加载一次。第一次观看时它是空的。如果你想为特定的VC定制它,那么你必须通过访问self.NavigationBar在视图中执行load方法来编程。