如何显示不属于UINavigationController根目录的UITabBar?

时间:2011-04-01 18:08:33

标签: iphone ios uikit uinavigationcontroller uitabbarcontroller

我有一个应用程序,其中包含一些需要浏览的设置屏幕,包括选择数据集。一旦用户选择了一个数据集,他们就会得到一个带有标签栏的屏幕。

我必须按如下方式进行设置:

  • UINavigationController作为主要根。
  • 打开数据集时,UITabBarController被推送到UINavigationController。 (此时隐藏导航栏。)
  • 每个标签都是自己的UINavigationController

这种方法运行得相当不错,只是当用户打开数据集时会有明显的中断。我无法提供一个看起来像操作系统的后退按钮来返回以选择不同的数据集。这意味着用户需要关闭应用程序来切换数据集(这并不可怕,因为出于安全考虑,我们不支持多任务处理)。

如何让用户更容易选择不同的数据集?

1 个答案:

答案 0 :(得分:1)

Apple警告你不要在UITabBarController类引用中使用UITabBarController作为UINavigationController堆栈的一部分:

  

部署标签栏界面时,必须将此视图安装为窗口的根目录。与其他视图控制器不同,标签栏界面不应该作为另一个视图控制器的子项安装。

而是将标签栏控制器设置为根视图控制器,并将“数据集选择”导航控制器显示为标签栏控制器上的模态视图控制器。添加工具栏或其他界面以选择新数据源。

或者只显示标签栏控制器,在没有选择数据源时为每个标签显示一些合理的内容,并使用其中一个标签(或“更多”标签下的选项)来控制数据源选择。