1

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

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

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

可以做到这一点,还是这种方法很愚蠢?我想我可以创建一个容器视图,并进出视图控制器。但是在 IB 中使用 UITabBarController 可以很明显地(在视觉上)这些视图都是相互连接的。

感谢您的任何建议。

4

1 回答 1

1

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

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

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

  • 从情节提要中设置的可能性viewControllers(这是最好的部分恕我直言)
  • 可以将tabBarItem用作菜单控制器的图标

所以,更简略地说:

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

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

问候法比奥

于 2013-07-31T16:18:45.840 回答