如何使用TabBarController显示不同的项目?

时间:2012-11-17 01:34:21

标签: objective-c ios uinavigationcontroller uitabbarcontroller tabitem

在我的firstViewController我有一个tabbar,其中包含firstViewControllerhelpViewController

当我点击FirstViewController中的按钮时,我会推送NewViewController。但是,当推送此视图时,我想更改TabBarController中的内容以显示其他ViewControllers,例如infoViewControlleroptionViewControllerNewViewController。这可能吗?

第一张图片代表我的应用程序。 FirstViewController有一个推送NewViewController的按钮。当用户单击此按钮时,我希望我的应用程序显示第二个图像中的内容。有可能吗?My problem

3 个答案:

答案 0 :(得分:1)

是的,这是可能的(我只是在Xcode中做了一个概念验证)。假设您正在使用故事板,则需要将初始视图控制器设为UINavigationController,否则您将无法使用推送segue。然后,使第一个UITabBarViewController导航控制器的根视图控制器。将全新的UITabBarController添加到故事板中,然后将UIButton放入firstViewController并通过推送segue将其链接到新的(第二个)UITabBarController

当您点击按钮时,旧标签栏将滑落,新标签栏将滑动。

这是一个如何看起来的例子: enter image description here

答案 1 :(得分:0)

!!这个应用程序使用navigationController和TabBarController !! 使用故事板,我看到了应用程序的每个部分,然后我有了想法:推动NewViewController,如何推送tabBarController?当用户单击该按钮时,应用程序将使用2 TabController的推送tabBarController

只需将新文件添加到您的项目中,即子类UITabBarController。然后将此代码添加到tabBarControllerself.hidesBottonBarWhenPushed = YES;

的init方法中

ViewDidLoad上,只需分配并初始化要在tabBar和

上显示的视图

self setViewControllers:[NSArray arrayWithObjects: vc1, vc2, vc3, nil]];

在这里工作正常:D

答案 2 :(得分:-1)

您可以嵌套TabBarControllers。但这看起来很奇怪。并且第一个TabBar不会被更改。将TabBarController推送到TabBarController是不可能的,因为TabBarController不支持pushViewController。这只适用于NavigationController。

无论如何,您可以完全以编程方式更改TabBar的内容。

enter image description here

enter image description here