iOS--隐藏和显示TabBar的方法

1.隐藏TabBar:

[cpp] view plain copy
  1. - (void)hideTabBar {  
  2.     if (self.tabBarController.tabBar.hidden == YES) {  
  3.         return;  
  4.     }  
  5.     UIView *contentView;  
  6.     if ( [[self.tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] )  
  7.         contentView = [self.tabBarController.view.subviews objectAtIndex:1];  
  8.     else  
  9.         contentView = [self.tabBarController.view.subviews objectAtIndex:0];  
  10.     contentView.frame = CGRectMake(contentView.bounds.origin.x,  contentView.bounds.origin.y,  contentView.bounds.size.width, contentView.bounds.size.height + self.tabBarController.tabBar.frame.size.height);          
  11.     self.tabBarController.tabBar.hidden = YES;  
  12.       
  13. }  

如果是在push之后的页面调用隐藏, 前一个页面要在willAppear中调用显示, 不然前一个页面的tabbar会消失掉. 


2.显示TabBar:

[cpp] view plain copy
  1. - (void)showTabBar  
  2.   
  3. {  
  4.     if (self.tabBarController.tabBar.hidden == NO)  
  5.     {  
  6.         return;  
  7.     }  
  8.     UIView *contentView;  
  9.     if ([[self.tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]])  
  10.           
  11.         contentView = [self.tabBarController.view.subviews objectAtIndex:1];  
  12.   
  13.     else  
  14.           
  15.         contentView = [self.tabBarController.view.subviews objectAtIndex:0];        
  16.     contentView.frame = CGRectMake(contentView.bounds.origin.x, contentView.bounds.origin.y,  contentView.bounds.size.width, contentView.bounds.size.height - self.tabBarController.tabBar.frame.size.height);  
  17.     self.tabBarController.tabBar.hidden = NO;  
  18.       
  19. }  


3.如果定义了上面两个方法,在viewDidAppear:方法里面就可以调用了

[cpp] view plain copy
    1. -(void)viewDidAppear:(BOOL)animated{  
    2.     //[self hideTabBar];  
    3.     [self showTabBar];  
    4. }  
原文地址:https://www.cnblogs.com/mafeng/p/5858148.html