【问题标题】:How to TabBarController display differents Items?TabBarController 如何显示不同的项目?
【发布时间】:2012-11-05 18:42:51
【问题描述】:

在我的firstViewController 上,我有一个tabbar,其中包含我的firstViewController 和一个helpViewController

当我点击FirstViewController 中的按钮时,我按下NewViewController。但是,当这个视图被推送时,我想将TabBarController 的内容更改为显示其他视图控制器,例如infoViewControlleroptionViewControllerNewViewController。这可能吗?

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

【问题讨论】:

    标签: objective-c ios uinavigationcontroller uitabbarcontroller tabitem


    【解决方案1】:

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

    当您点击按钮时,旧标签栏将滑出,而新标签栏将滑上。

    以下是所有外观的示例:

    【讨论】:

    • 很高兴它成功了。如果此答案确实解决了您的问题,那么如果您能将其标记为解决方案,我将不胜感激。谢谢!
    【解决方案2】:

    !!这个应用使用了navigationController和TabBarController!! 使用故事板,我看到了应用程序的每个部分,然后我有了一个想法:推NewViewController,推tabBarController怎么样?当用户点击按钮时,应用会推送tabBarController 和2个TabController`s。

    只需将新文件添加到您的项目中,子类为 UITabBarController。然后将此代码添加到您的tabBarController 的init 方法中:self.hidesBottonBarWhenPushed = YES;

    ViewDidLoad 上,只需分配并初始化您想要在 tabBar 上显示的视图和

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

    在这里工作正常:D

    【讨论】:

      【解决方案3】:

      你可以嵌套 TabBarControllers。但这看起来很奇怪。并且第一个 TabBar 不会改变。无法将 TabBarController 推入 TabBarController,因为 TabBarController 不支持 pushViewController。这只能通过 NavigationController 实现。

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

      【讨论】:

      • 如果你把这段代码放在init方法上,你将只有一个TabBar:self.hidesBottonBarWhenPushed = YES;
      猜你喜欢
      • 1970-01-01
      • 2021-08-15
      • 2010-11-06
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      • 2012-10-04
      相关资源
      最近更新 更多