在UITabBarController的一个选项卡中全屏显示

时间:2011-06-08 16:09:52

标签: iphone uiviewcontroller uitabbarcontroller

目前,通过UITabBarController切换了五个UIViewControllers。如何隐藏TabBar并为其中一个UIViewControllers提供全屏?

例如:

  • 点击中间标签
  • 隐藏了UITabBarController TabBar
  • UIViewController采用全屏(也隐藏状态栏)
  • 单击中间的一个按钮时,切换到第一个选项卡(状态栏恢复,UITabBarController TabBar恢复)

4 个答案:

答案 0 :(得分:4)

您可以将视图控制器放在导航控制器中,并将视图控制器的hidesBottomBarWhenPushed属性设置为YES。隐藏状态栏可以使用共享应用程序对象的statusBarHidden属性来完成。

答案 1 :(得分:1)

首先,右键单击Interface Builder中的标签栏,然后将“委托”拖动到“文件所有者”。

然后,将以下方法添加到选项卡栏控制器:

– (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    [UIView animateWithDuration:0.5 animations:^(void) {
        tabBar.transform = CGAffineTransformMakeTranslation(0, 480);
    }];
}

单击按钮时,将标签栏添加为标签栏控制器的插座, 然后在按下按钮时执行以下操作:

[UIView animateWithDuration:0.5 animations:^(void) {
        tabBarController.tabBar.transform = CGAffineTransformMakeTranslation(0, 431);
}];

完成!

答案 2 :(得分:1)

要隐藏标签栏,您可以使用:

    tabBarController.tabBar.hidden = YES;

您可以通过与中间标签栏视图相关联的控制器的viewWillAppear方法或在标签栏控制器委托–tabBarController:shouldSelectViewController:

中调用此方法

您必须在所有其他视图控制器的viewWillAppear中执行相反的操作,或者在单击“恢复”按钮时执行相反操作;

为了隐藏状态栏:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

与上述相同的地方。

答案 3 :(得分:0)

我通过以下方式解决了这个问题。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

segue.destinationViewController.hidesBottomBarWhenPushed = YES

}