我可以拥有多个UITabBarController吗?

时间:2011-07-09 00:09:21

标签: iphone objective-c cocoa-touch uiviewcontroller uitabbarcontroller

让我们想象一下这个场景:

的UITabBarController - UITabBar    - 选项卡1:查看控制器A.    - 选项卡2:查看控制器B

当我点击View Controller A时,我想推送另一个UITabBarController:

的UITabBarController -UITabBar    - 选项卡1:查看控制器1    - 选项卡2:查看控制器2    - 选项卡3:查看控制器3

这可能吗?要让UITabBarController将另一个UITabBarController压入视图堆栈?

2 个答案:

答案 0 :(得分:0)

当然,我只是将它们叠加在界面构建器中。有一些帧偏移问题,但你可以看到堆叠的tabbars。此外,选择其他选项卡时,选项卡会取消堆栈。我还必须确保第一个标签的视图已添加到窗口的视图中并以IBOutlet形式连接,否则应该这样做。

enter image description here

答案 1 :(得分:0)

你当然可以这样做,但我会重新考虑你的设计。选择UITabBar项目并更改标签栏本身会违反Human Interface Guidelines。此外,在您的示例中,您如何返回到根视图控制器?

也许您应该使用UITableView,当您点击一个单元格时,它会推送一个包含UITabBarController的视图控制器(从技术上讲,这也可能违背HIG,因为标签栏在整个应用程序中应该是相同的,但我有足够的应用程序采用这个,它看起来很优雅)。所以使用你的例子:

RootViewController的: 推出UINavigationController与包含两个单元格的UITableView: “cell1”& “小区2”

- 点击“cell1”按下包含UITabBar(I)的视图控制器,其中包含“View Controller A”和“View Controller B”。

- 点击“cell2”按下包含UITabBar(II)的视图控制器,其中包含“View Controller 1”,“View Controller 2”和“View Controller 3”。

在每种情况下,您都会得到一个“后退”按钮,而UITabBar本身不需要更改。