【问题标题】:I'd like to have a UITabBarController, with no UITabBar我想要一个没有 UITabBar 的 UITabBarController
【发布时间】:2013-07-31 13:12:57
【问题描述】:

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

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

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

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

感谢您的建议。

【问题讨论】:

    标签: ios ipad uitabbarcontroller uitabbar


    【解决方案1】:

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

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

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

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

    所以,更简单地说:

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

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

    问候 法比奥

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多