按下特定选项卡[Tab Bar Application] -template时,无法隐藏UITabBar

时间:2012-03-22 08:20:49

标签: iphone ios ios4 uitabbarcontroller uitabbar

开发!

我目前正在开发使用Tab Bar应用程序模板的应用程序。我想做什么 是模拟我的应用程序的第一个选项卡对应的起始页。

因此,当应用程序启动时,第一个选项卡被选中,UITabBar不应该可见。 在这个“startview”中,有多个按钮的作用与其他选项卡相同,例如我按下#2按钮,第二个标签视图被按下,UITabBar再次可见。

我的问题是我有办法隐藏栏,但子视图没有调整到全屏。

使用:     [self.tabBarController.tabBar setHidden:YES];

我也试过用:     self.hidesBottomBarWhenPushed = YES;

但它似乎没有效果,我不知道在我使用之后在哪里添加代码 模板。

任何人都知道如何使用Tab Bar应用程序模板实现这一点?

我猜它应该在:      - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

但我已经尝试过,而且这种方法永远不会被调用......

非常感谢, 罗伯特

1 个答案:

答案 0 :(得分:2)

这些代码可以帮助您隐藏tabbarcontroller并调整viewcontroller的大小。

    - (void) hideTabBar:(UITabBarController *) tabbarcontroller {

    int height = 480;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];

    for(UIView *view in tabbarcontroller.view.subviews) {
        if([view isKindOfClass:[UITabBar class]]) {
            [view setFrame:CGRectMake(view.frame.origin.x, height, view.frame.size.width, view.frame.size.height)];
        } 
        else {
            [view setFrame:CGRectMake(view.frame.origin.x,view.frame.origin.y, 320, 436)];
        }
    }

    [UIView commitAnimations];
}

第二种方法可以帮助您在视图中再次设置tababr

    - (void) showTabBar:(UITabBarController *) tabbarcontroller {

    int height = 480;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3]; 

    for(UIView *view in tabbarcontroller.view.subviews) {

        if([view isKindOfClass:[UITabBar class]]) {
            [view setFrame:CGRectMake(view.frame.origin.x, height, view.frame.size.width, view.frame.size.height)];            
        } 
        else {
            [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, height)];
        }
    }    

    [UIView commitAnimations];
}

在您的代码中实现代码之前请先理解代码...