TabBar控制器和导航控制器 - 谁是经理?

时间:2009-08-25 13:28:12

标签: iphone cocoa-touch xcode

我想在导航控制器(顶部蓝色导航栏)下有一个视图(层次结构),它有一个TabBar(底部的黑色),以显示同一级别的其他视图(每个用于制表符) 。

如果选择其中一个视图(黑色标签栏),则应始终显示TabBar以跳转到同一级别的另一个视图。如果你想回到上层的水平,你必须选择顶部栏中的“后退”导航按钮(蓝色),“标签栏”应该消失。

为什么Apple建议(在我看来)要避免这种情况?

我引用了“适用于iPhone OS的View Controller编程指南”第39页所写的内容:

  

组合标签栏和导航控制器非常常见,如图4所示。为此,您只需将导航控制器添加到标签栏控制器(但是,您绝不应该将标签栏控制器添加到标签栏控制器中导航控制器)。

相反,我会在“导航栏”(经理)

下添加“标签栏”

我认为错了吗?

感谢您的帮助!

的Dario

3 个答案:

答案 0 :(得分:3)

他们的意思是标签栏永远不应该是导航视图的子项。标签栏实际上是为了定义应用程序的不同“模式”,而导航控制器则用于显示分层数据。

如果你想在导航控制器中使用某种模式,我认为往往会使用工具栏。例如,邮件应用程序底部的工具栏。

UIToolbar Docs

答案 1 :(得分:2)

根据我在几个论坛和文档中挖掘的内容,以下内容是正确的:

Tab Bar Controller > Navigation Controller > View

您只需使用界面构建器,然后将TabBarItems,NavigationItems和Controllers绑定到代码中的出口即可。

一些文件样本:
Building an iPhone App Combining Tab Bar, Navigation and Tab (YouTube)
iphonedevsdk (Forum)
Add NavigationController to TabBarController (Forum Tutorial)

祝你好运,如果你坚持使用文档就不能做太多。访问论坛并查找视频。

答案 2 :(得分:0)

他们的意思是导航控制器永远不应该被推到标签栏视图控制器,因为它不能支持它,但是tabbarviewcontroller可以支持导航视图控制器,所以你可以这样做。您也可以只将一个标签栏添加到导航视图控制器视图(而不是导航堆栈),并让导航视图管理标签栏而不是UITabBarViewController。