Cocoa-Touch:使用带有多个选项卡的UITabBarController作为UINavigationControllers

时间:2009-11-05 16:24:47

标签: iphone objective-c cocoa-touch

我正在构建一个包含5个标签的应用,每个标签都会有表+项详情视图。

所以我必须创建一个UITabBarController,而不是直接视图的项目是UINavigationController,其中包含默认视图。

我已经完成了这项工作,但它确实有效,但是......

这不是浪费吗?查看UITabBarController所做的只是在选项卡栏中创建一个导航控制器和一组按钮,用于推送和弹出它的项目。

是否可以以某种方式使用UITabBarController的导航控制器,而不是创建5个新的导航控制器?

2 个答案:

答案 0 :(得分:3)

不,这不浪费。每个选项卡都是一个单独的视图堆栈,这就是您需要不同导航控制器的原因 - 导航控制器只能有一个根对象,而不是四个或五个。

当您切换标签时,它会返回到您导航到的位置 - 当您按两次标签时,它会告诉导航控制器跳转到堆栈顶部。如果您在所有选项卡中仅使用了一个导航控制器,则会中断 - 就像导航栏的特定选项卡一样。

它不像导航控制器甚至有自己的视图。它只是视图控制器对象所占用的空间,它根本不是......

答案 1 :(得分:1)

UITabBarController将其子选项卡表示为UIViewController的数组,而不是UINavigationController的数组。因此,您的方法是完全正确的:当您想要在给定选项卡中实现导航时,使用UINavigationController s(UIViewController的子类)代替标准视图控制器。