详谈隐藏Tabbar的几种方法

摘要:
消失就是把它从屏幕上删除,而出现就是把它放回去。在ViewController7.m://尝试显示时添加方法。在此设置中,向下移动tabBar以删除整个屏幕。

            如今正在写的一个项目,涉及到了使用两个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的几种方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#-微信公众平台接口-上传临时素材VLAD / NetVLAD / GhostVLAD下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

关于ArcMap中的地图文档单位

在ArcMap中地图文档的单位有度分秒、千米、米、十进制等很多种,但是ArcMap中的测量距离功能的实现必须建立在图层框架具有投影坐标系的情况下才能进行正确的计算,否则是不能进行的,IPolyline的Lenth属性获取的单位为十进制,需要转换成米。...

oracle 在sql中显示blob的字符串

最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。以上只是自己做了个简单的处理,相信肯定有更好的方法,希望大家帮忙,但是感觉dbms_lob函数下的方法真的很好用。...

java--枚举

前言:Java中的enum也是一种类类型,它与一般类的区别在于1.世界上只有一个实例2.不能有公共构造函数3。您不能继承和继承枚举事例publicenumHttpCode{SUCCESS(200,“操作成功”)。//定义的每个枚举项都等效于通过构造函数HttpCode(int code,Stringmessage)实例化没有枚举项的通用HttpCo...

Nginx反向代理缓冲区优化

为了为不同域名的业务需求设置代理_ bufferingproxy_缓冲参数用于控制是否打开后端响应内容的缓冲区_缓冲区将缓冲到硬盘(缓冲区目录由_temp_path命令指定),...

最新版Swagger 3升级指南和新功能体验!

因此,本期将为您带来一篇关于Swagger最新版本的文章。本文将向您展示Swagger最新版本的变化?如何将旧版本的Swagger升级到新版本?Swagger是一个用于生成、描述和调用RESTful接口的Web服务。Swagger 2.9.2的使用分为以下四个步骤:添加依赖项、启用Swagger功能、配置Swagger文档摘要信息和调用接口访问。让我们分别来...

数据库软考易混淆知识之信息化基础、项目管理

2、 关键路径关键路径是活动图中最长的路径示例:图中显示了软件项目的活动图,其中固定点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动持续时间的天数,则完成项目的最短时间为()天,活动EH和IJ的放松时间分别为()日。...