隐藏TabBar

方法一:将设置显示试图的高度

- (void)makeTabBarHidden:(BOOL)hide
{
    if ( [self.tabBarController.view.subviews count] < 2 )
    {
        return;
    }
    UIView *contentView;
    
    if ( [[self.tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] )
    {
        contentView = [self.tabBarController.view.subviews objectAtIndex:1];
    }
    else
    {
        contentView = [self.tabBarController.view.subviews objectAtIndex:0];
    }
    //    [UIView beginAnimations:@"TabbarHide" context:nil];
    if ( hide )
    {
        contentView.frame = self.tabBarController.view.bounds;        
    }
    else
    {
        contentView.frame = CGRectMake(self.tabBarController.view.bounds.origin.x,
                                       self.tabBarController.view.bounds.origin.y,
                                       self.tabBarController.view.bounds.size.width,
                                       self.tabBarController.view.bounds.size.height - self.tabBarController.tabBar.frame.size.height);
    }
    
    self.tabBarController.tabBar.hidden = hide;

}

 

方法二:navigationController +tabBarController的结构的话,在push到下一级的childController的时候用
childController.hidesBottomBarWhenPushed = YES;

detailViewController *detailView=[[detailViewController alloc] initwithDic:dic];
    detailView.hidesBottomBarWhenPushed = YES;

    [self.navigationController pushViewController:detailView animated:YES]; 

posted @ 2012-03-14 09:42  Ethan_村长  阅读(3039)  评论(0编辑  收藏  举报