【问题标题】:Two tab bar items should show the same UIViewContoller两个标签栏项目应该显示相同的 ViewController
【发布时间】:2012-08-13 10:45:28
【问题描述】:

我想要的是在我的 UITabBar 中有两个 UITabBarItems(这不是真正的问题......)。

所以通常第一个项目有他自己的 UIViewcontroller,第二个项目有他自己的 UIViewcontroller。 但我希望每个 TabBarItem 都显示相同的 UIViewcontroller 实例。 (功能几乎相同,这两个视图控制器之间只有一个标签不同)

所以我认为我必须在用户推送第二个 tabBarItem 之后立即将最后一个 viewController 推送到 tabBarItemStack 的顶部,对吧?

目前我正在使用带有两个 UIViewcontroller 的 StoaryBoard,所以我真的不知道如何访问 TabBarItemStack 以及从哪里获得用户推送下一个选项卡的通知?

或者我可以在加载第一个视图后更改堆栈并将当前视图推送到堆栈的第二个索引上吗?

希望我能够解释我的问题,以便任何人都能理解;-)

感谢和问候,

【问题讨论】:

    标签: ios ios5


    【解决方案1】:

    在这种情况下,我根本不会使用 UITabBar。我会在我的视图控制器中创建一些 GUI 对象,看起来像两个选项卡,但实际上只有 2 个按钮。

    当您单击它们时,您会通过更改按钮的图像来切换它们的外观,从而看起来您已经切换了选项卡。但是你总是停留在同一个视图控制器中。而您只需更改其中的内容。

    然后您可以通过使用成员变量来跟踪用户选择了哪个“选项卡”的类,这样您就知道要显示哪些内容。

    当您有未知数量的选项卡并且您不知道它们将包含什么确切内容时,UITabBar 最有用。很多时候,不使用 UITabBar 而只使用具有“选项卡式”布局的图像/按钮会容易得多,即使您有多个视图控制器也是如此。

    【讨论】:

    • 感谢您的建议。这听起来实际上相当不错。但是我不确定将来是否需要更多选项卡,以便我有 3 个选项卡,其中两个与上面描述的一样,一个甚至更多是完全不同的。因此,如果有可能像上面提到的那样实现它,我会更喜欢这个解决方案。
    【解决方案2】:

    您是否可以有两个UIViewControllers(每个UITabBarItem 一个),但它们都是从第三个(包含所有逻辑)继承(下降)的。这样你就不会复制代码,也不会对层次结构感到厌烦,这样你可能会引入错误?

    【讨论】:

    • 这也是我的第一个。但是我仍然有两个 VC 实例,并在两者之间同步了一些变量。这就是为什么我想要相同的 VC 实例。
    【解决方案3】:

    在两个 TabBar 中加载相同的 UIViewController。我假设你需要在第一个 tabBar 中隐藏标签并在第二个 tabBar 中显示

    现在在 viewWillAppear 方法中添加这段代码:

    -(void)viewWillAppear:(BOOL)animated
    {
       [super viewWillAppear:animated];
       if(self.tabBarController.selectedIndex == 0) 
       {
          yourLabel.hidden = YES;
       }
       else if(self.tabBarController.selectedIndex == 1) 
       {
          yourLabel.hidden = NO;
       }
    }
    

    【讨论】:

    • 在两个 TabBarController 中加载相同的 UIViewController ?好吧,我没有两个 TabBarControllers,而是一个有两个项目。那么如何将相同的 VC 实例加载到这两个项目中呢?
    • 我的错误:在两个 TabBar 中加载相同的 UIViewController。
    • 好吧,但是怎么样? ;-) 对不起,但我现在站在我的头上。谢谢
    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 2016-07-27
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    相关资源
    最近更新 更多