码迷,mamicode.com
首页 > 其他好文 > 详细

详谈隐藏Tabbar的几种方法

时间:2014-11-12 13:54:39      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:uitabbarcontroller   导航   uiviewcontroller   uiview   需求   

            现在正在写的一个项目,涉及到了使用两个TabBar,然后我需要显示其中一个的时候,然后隐藏另外一个,但是中间却出现问题了.我查了一些资料,想总结一下关于TabBar的隐藏.


    第一种方法是:

   //隐藏tarBar

    self.hidesBottomBarWhenPushed = YES;


这个方法是UIViewController的属性,很好用.但是我需要把隐藏的TabBar显示出来的时候,却发现显示不出来.

- (void)viewWillAppear:(BOOL)animated

{

   

    //显示TabBar

    self.hidesBottomBarWhenPushed = NO;

    //显示导航条

    self.navigationController.navigationBarHidden = NO;

}

     

    然后,我开始想,有没有其它的方法,我找了一下,发现了第二种方法;

    第二种方法:

    //隐藏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);
}

好吧,目前知道就是这些了,欢迎大家根据自己的需求,挑选合适的方法.


     





详谈隐藏Tabbar的几种方法

标签:uitabbarcontroller   导航   uiviewcontroller   uiview   需求   

原文地址:http://blog.csdn.net/zuoyou1314/article/details/41039891

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!