我想要一个UITabBarController,没有UITabBar

时间:2013-07-31 13:12:57

标签: ios ipad uitabbarcontroller uitabbar

我正在构建类似于iPad上的UISplitView的东西。但是“主”面板会有按钮,而不是列表。

详细信息面板最多有7个不同的屏幕(对应于主窗格中的按钮)。

所以,我想要做的是在InterfaceBuilder中构建一个UITabBarController(除了容易查看之外别无其他原因)。但是,按下“主”视图中的每个按钮都会告诉标签栏控制器显示不同的面板。

可以这样做,还是这种方法很傻?我想我可以创建一个容器视图,并交换视图控制器。但是在IB中使用UITabBarController可以明显(直观地)看到这些视图都已连接。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

我做了同样的事情,但我无法以干净合法的方式隐藏标签栏。

所以,我决定改变方法:仅在故事板中使用UITabBar作为"占位符"为了连接并填充我的SplitController的viewControllers数组,然后在加载我的SplitController时,以编程方式从Storyboard加载UITabBarController,复制viewControllers数组的内容,最后,关闭UITabBarController。 / p>

使用这种方法,您只需要管理VC和另一个VC之间的转换,但您将拥有:

  • 从故事板中设置viewControllers的可能性(这是最好的部分imho)
  • 可以使用tabBarItem作为菜单控制器的图标

所以,更为原理图:

  • 使用NSArray* viewControllers实例变量
  • 创建SplitController实例
  • 您可以向SplitController添加initWithTabBarController:实例方法,并传递以编程方式加载的tabBarController实例。
  • initWithTabBarController方法中,使用viewControllers属性填充tabBarController.viewControllers数组。现在你可以"垃圾"你的标签栏控制器实例,你不需要它
  • 您必须自己管理从一个控制器到另一个控制器的转换。为此,我建议您使用带有容器视图控制器的主视图。

我认为这种方法很好,有一个干净,可读的故事板,我更新我的所有项目使用它。

此致 法比奥