NavigationController和TabBarController一起出问题

时间:2009-12-21 12:58:05

标签: iphone uinavigationcontroller uitabbarcontroller

我对导航控制器和tabBarController的使用有一个查询。

我会详细解释。

我的申请流程如下,

Class A (Navigation starts from here)
--Class B (Pushed on navigation from A)
----Class C (Pushed on navigation from B)
------Tab P
------Tab Q
------Tab R (I want navigation here)
------Tab S (I want navigation here)

我的C类有一个带有四个Tabs的TabBarController。 现在有两个标签需要导航。

我为两个标签创建了两个独立的导航控制器(R和S) 但是当我使用它时,屏幕上有两个导航栏。 本身和其他根导航栏之一。

我是否需要隐藏根导航栏?怎么做? 还有其他办法吗?

请帮助我。

提前致谢。

3 个答案:

答案 0 :(得分:2)

流程听起来并不那么用户友好,在导航中深入两级后,用户需要一些详细设置,而不是全新的4个选项卡屏幕。

建议,斯坦福大学的iTunesU免费提供完整的iPhone Dev课程。它由Apple员工在NavigationController + TabBarController类中提供,详细说明了如何构建层次结构。

答案 1 :(得分:2)

你可以把一个TabBarController放在一个NavBarController中,但根据官方的Apple文档,你不应该反过来说。

也就是说,当你从NavBarController的屏幕中选择它时,可以通过用TabBarController替换根视图控制器来破解它。这会隐藏导航栏。但是当然你不会有一堆你可以方便地弹出的导航控制器,你没有顶部的导航栏,只需一个按钮即可返回。

如果您在NavBarController堆栈中放置Tab栏,则可能需要重新考虑导航层次结构。

答案 2 :(得分:0)

还要注意的一件事如果你隐藏应用程序的导航栏,那么在C级你将无法以正常的方式进入以前的类,当然它不会那么友好。

顺便说一句,您可以将导航栏隐藏为..

[self.navigationController setNavigationBarHidden:Yes];