尽管在控制器中设置tabbar.hidden = NO,TabBar仍保持隐藏状态

时间:2014-01-22 19:24:56

标签: ios iphone uitabbarcontroller

我目前有两个视图控制器,一个CameraViewController使用imagePicker拍照,一个PhotoInboxViewController显示一个人收到的所有照片信息。 PhotoInboxViewController以及我的根视图控制器是Tab Bar Controller

当我在CameraViewController中显示imagePicker以及其后的图像预览屏幕时,我通过设置self.tabBarController.tabBar.hidden = YES来禁用TabBar。我的问题是,当PhotoInboxViewController再次显示时(例如,如果用户取消拍照),我希望标签栏再次显示。在我的viewWillAppear方法中,我有以下内容:

//In PhotoInboxViewController
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    if ([[[self tabBarController] tabBar] isHidden]){
        self.tabBarController.tabBar.hidden = NO;
    }

}

在调试中,我看到if语句确实被评估为tabBar为isHidden,因此也会执行下一行。但是,我的标签栏仍然隐藏。

我做错了什么?感谢您的帮助 - 谢谢!

1 个答案:

答案 0 :(得分:1)

您不需要隐藏标签栏。在以模态方式呈现时,您应该从全屏/根视图控制器中呈现。在这种情况下,标签栏控制器,而不是其中一个选项卡中的视图控制器。这样可以使演示文稿正常工作而不会产生任何奇怪的副作用。