我想要一个没有 UITabBar 的 UITabBarController
Posted
技术标签:
【中文标题】我想要一个没有 UITabBar 的 UITabBarController【英文标题】:I'd like to have a UITabBarController, with no UITabBar 【发布时间】:2013-07-31 13:12:57 【问题描述】:我正在构建类似于 iPad 上的 UISplitView 的东西。但是“主”面板会有按钮,而不是列表。
详细信息面板最多有 7 个不同的屏幕(对应于主窗格中的按钮)。
所以,我想做的是在 InterfaceBuilder 中构建一个 UITabBarController(除了它易于查看之外没有其他原因)。但是在“主”视图中按下的每个按钮都会告诉标签栏控制器显示不同的面板。
这可以做到吗,还是这种方法很愚蠢?我想我可以创建一个容器视图,并进出视图控制器。但是在 IB 中使用 UITabBarController 可以很明显(视觉上)这些视图都是相互连接的。
感谢您的建议。
【问题讨论】:
【参考方案1】:我做了同样的事情,但我无法以干净合法的方式隐藏标签栏。
所以,我决定改变方法:仅使用 Storyboard 中的 UITabBar 作为连接的“占位符”并填充我的 SplitController 的 viewControllers
数组,然后在加载我的 SplitController 时,以编程方式从 Storyboard 加载 UITabBarController,复制 viewControllers
数组的内容,最后关闭 UITabBarController。
使用这种方法,您只需管理一个 VC 和另一个 VC 之间的转换,但您将:
可以从情节提要中设置viewControllers
(恕我直言,这是最好的部分)
可以使用tabBarItem
作为菜单控制器的图标
所以,更简单地说:
使用NSArray* viewControllers
实例变量创建您的SplitController 实例
您可以将initWithTabBarController:
实例方法添加到您的SplitController 并传递以编程方式加载的tabBarController
实例。
在initWithTabBarController
方法中,使用tabBarController.viewControllers
属性填充viewControllers
数组。现在您可以“丢弃”您的标签栏控制器实例,您不需要它
您必须自己管理从一个控制器到另一个控制器的转换。为此,我建议您使用带有容器视图控制器的主视图。
我认为这种方法有一个干净易读的故事板很好,我正在更新我的所有项目以使用它。
问候 法比奥
【讨论】:
以上是关于我想要一个没有 UITabBar 的 UITabBarController的主要内容,如果未能解决你的问题,请参考以下文章
带有 UITabBar 的 UITabBarController 功能
在 UITabbar 上方使用 UIToolbar - 有可能吗?