第一种方法是:ide
// 隐藏 tarBario
self . hidesBottomBarWhenPushed = YES ;object
这个方法是UIViewController的属性,很好用.可是我须要把隐藏的TabBar显示出来的时候,却发现显示不出来.方法
- ( void )viewWillAppear:( BOOL )animatedim
{tab
// 显示 TabBar移动
self . hidesBottomBarWhenPushed = NO ;animate
// 显示导航条view
self . navigationController . navigationBarHidden = NO ;vi
}
而后,我开始想,有没有其它的方法,我找了一下,发现了第二种方法;
第二种方法:
// 隐藏 tarBar
self . tabBarController . tabBar . hidden = YES ;
这个方法才是UITabBarController 自带的方法 ,我写了一下,发现可以隐藏.
而后,我赶忙试一下,是否是能够显示出来.
- ( void )viewWillAppear:( BOOL )animated
{
// 显示 TabBar
self . tabBarController . tabBar . hidden = NO ;
// 显示导航条
self . navigationController . navigationBarHidden = NO ;
}
我发现特别管用,个人TabBar显示出来了.个人问题,也解决了.因此,建议你们用第二种方法.
固然,在我查资料中,我也看到网友们提到的第三种方法;
第三种方法 :
就是把UITabBar的位置移动,即调整frame.origin.y的值。消失就是把它移出屏幕,出现就是把它再放回原地。(但,还原时又卡顿现象,体验不好,不建议)
因此,在ViewController7.m中:
//增长一个试图即将出现时的方法,并在此设置把tabBar下移,移除整个屏幕,至关于消失了 -(void)viewDidAppear:(BOOL)animated{ NSArray *arr1=self.tabBarController.view.subviews; UIView *view1=[arr1 objectAtIndex:0]; UITabBar *tabBarView1=[arr1 objectAtIndex:1]; //第一个视图就是全屏,不须要把高度撑满,因此能够不作任何设置 //view1.frame=CGRectMake(0, 0, 375, 667); tabBarView1.frame=CGRectMake(0, 667, 375, 49); }
在ViewController1.m中:
//增长一个viewDidAppear,把下移的tabBar再上移,至关于还原到原地 -(void)viewDidAppear:(BOOL)animated{ NSArray *arr2=self.tabBarController.view.subviews; UITabBar *tabBarView2=[arr2 objectAtIndex:1]; tabBarView2.frame=CGRectMake(0, 618, 375, 49); }