为什么标签栏不显示在我的视图控制器上?

时间:2017-03-23 16:40:11

标签: ios objective-c xcode

我在Interface Builder中有以下内容: enter image description here

左上角是我的主视图控制器,我有两个按钮,它们有两个UIViewControllers。这两个UIViewControllers与Tab Bar Controller链接。但是,我怎样才能将这两个按钮专门链接到一个/另一个视图?现在它专门连接,但它(或其他东西)导致条形标签不显示。

问题是我没有将标签栏控制器连接到主视图吗?

2 个答案:

答案 0 :(得分:1)

是的,发生问题是正确的,因为标签栏控制器需要成为segue的目标。修复如下:

在IB中,从两个按钮中删除segue并创建两个新按钮,每个按钮一个到标签栏控制器。为每个人提供一个标识符,例如来自一个按钮的buttonA和来自另一个按钮的buttonB

在视图控制器中,为每个segue理解目标是标签栏控制器并且每个segue需要不同的选项卡选择实现prepareForSegue ...

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"buttonA"]) {
        UITabBarController *tabBarController = (UITabBarController *)segue.destinationViewController;
        tabBarController.selectedIndex = 0;
    }
    if ([segue.identifier isEqualToString:@"buttonB"]) {
        UITabBarController *tabBarController = (UITabBarController *)segue.destinationViewController;
        tabBarController.selectedIndex = 1;
    }
}

答案 1 :(得分:0)

tabBarController的作用并不完全。

我可以看到你的初始视图控制器是左上角的控制器,如果按下按钮,它会将右侧的其他两个控制器推送到导航堆栈。但是在当前的设置中,标签控制器本身并没有被推到堆栈。

相反,您可能希望让初始视图控制器通过按钮或其他方式将标签栏控制器推入堆栈,并且标签栏控制器将显示其他两个视图控制器作为其设置。