2012-03-22 47 views
2

开发人员时,无法隐藏UITabBar!当按下特定选项卡[Tab Bar Application] - 模板

我目前正在使用选项卡栏应用程序模板的应用程序。我想要做什么 是模拟我的应用程序的首页对应于第一个标签。

因此,当应用程序启动第一个选项卡被选中,UITabBar应该不可见。 在这个“开始视图”中有多个按钮,就像其余的选项卡一样,因此例如我按下按钮#2,并且第二个选项卡视图被按下,并且UITabBar再次可见。

我的问题是,我有一种方法来隐藏栏,但子视图不调整到全屏。

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

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

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

任何人都知道如何通过使用选项卡栏应用程序模板来实现这一点?

我猜应该是在: - (空)tabBarController:(*的UITabBarController)tabBarController didSelectViewController:(UIViewController的*)的viewController

但我已经试过了,并且方法永远不会被调用...

非常感谢, 罗伯特

回答

2

此代码可以帮助你隐藏tabbarcontroller并调整视图 - 控制。

- (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]; 
} 

请在你的代码执行之前理解的代码...

+0

好吧,我明白的代码,如果我理解这个权利,它应该被推向标签1的视图中执行? – RobertH 2012-03-24 13:23:30

+0

没关系,这个很好用,谢谢! – RobertH 2012-03-24 14:13:29