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

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

时间: 2024-10-22 10:39:19

详谈隐藏Tabbar的几种方法的相关文章

[爱上Swift] day10:IOS 点击空白处隐藏键盘的几种方法

IOS7 点击空白处隐藏键盘的几种方法 IOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法才能取消键盘的显示,对于用户体验来说很不友好,我们可以实现点击键盘以外的空白区域来将键盘隐藏,以下我总结出了几种隐藏键盘的方法: 首先说明两种可以让键盘隐藏的Method: 1.[view endEditing:YES]  这个方法可以让整个view取消第一响应者,从而让所有控件的键盘隐藏. 2.[textFiled resignFirstRespon

IOS开发隐藏键盘的4种方法

IOS开发隐藏键盘的4种方法 开发的app中常会用到键盘输入完成后隐藏键盘的情况.在此总结了4种方法来实现我们的目的. 方法一--delegate方式 第一种隐藏键盘的方法,称为delegate三步法: 1. 遵循(委托/代理); 2. 调用; 3. 关联头文件(ViewController.h)中遵循代理 . 代码如下: #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UITextFieldDel

IOS7 点击空白处隐藏键盘的几种方法

IOS7 点击空白处隐藏键盘的几种方法   IOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法才能取消键盘的显示,对于用户体验来说很不友好,我们可以实现点击键盘以外的空白区域来将键盘隐藏,以下我总结出了几种隐藏键盘的方法: 首先说明两种可以让键盘隐藏的Method: 1.[view endEditing:YES]  这个方法可以让整个view取消第一响应者,从而让所有控件的键盘隐藏. 2.[textFiled resignFirstResp

CSS 隐藏元素的八种方法

前言 总括: 本文详细讲述了在网页中用CSS隐藏元素的七种方法. 原文博客地址:从隐藏元素谈起 知乎专栏&&简书专题:前端进击者(知乎)&&前端进击者(简书) 博主博客地址:Damonare的个人博客 念念不忘,必有回响;有一口气,点一盏灯. 正文 说起隐藏元素我想每一个前端er都能说起几种,但能说全的我想就不是很多了.博主总结了几种隐藏元素的方法,总结如下: 1 div{ 2 3 overflow:hidden 4 opacity:0: 5 visibility:hidd

CSS中隐藏内容的3种方法

CSS中隐藏内容的3种方法 一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出层.隐藏滚动条.清除错位和浮动等. 1.使用display:none来隐藏所有内容 display:none可以让网页中所有内容不显示,如代码.文字.链接.图片.div层,是推荐的内容隐藏方式. <div style="display:none;">隐藏内容</div> 值 描述 none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. i

CSS中隐藏内容的3种方法及属性值

在制作网页时,隐藏内容也是一种比较常用的手法,它的作用一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出层.隐藏滚动条.清除错位和浮动等等. 使用CSS即可使以上提到的内容隐藏起来,几种隐藏内容的方法: 1.使用display:none来隐藏所有内容 display:none可以让网页中所有内容不显示,如代码.文字.链接.图片.div层,是推荐的内容隐藏方式. <div style="display:none;">我不占地儿,你看不见我:</div>

CSS“隐藏”元素的几种方法的对比

一说起CSS隐藏元素,我想大部分小伙伴们都会想到的第一种方法就是设置display为none.这是最为人所熟知也是最常用的方法.我相信还有不少人想到使用设置visibility为hidden来隐藏元素,这种方式也是常用的方法,而且也有很多人知道两者的不同.除了这两种方法,本文还总结了一些比较不常用的方法,比较了这几种“隐藏”元素方法的区别和优缺点,欢迎大家交流!! 几种方法的简单介绍 首先我们分别来说说到底有哪几种隐藏元素的方法,有一些方法是众所周知的,还有一些算是一种技巧. display:n

CSS隐藏元素的几种方法

使用CSS隐藏元素的方法很多,在这里简单总结一下: 1.display:none display:none 应该是最常用的一种隐藏元素的方法,使用该方法隐藏的元素脱离文档流不占据空间,不会被浏览器解析,不能点击,搜索引擎可能会认为被隐藏的文字属于垃圾信息而被忽略,而且屏幕阅读器(是为视觉上有障碍的人设计的读取屏幕内容的程序)会忽略被隐藏的文字. 2.visibility:hidden 使用 visibility:hidden 隐藏的元素,不能点击,但是会占据文档空间,不够灵活,一般配合 posi

IOS 点击空白区隐藏键盘的几种方法

转自:http://blog.csdn.net/swingpyzf/article/details/17091567 IOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法才能取消键盘的显示,对于用户体验来说很不友好,我们可以实现点击键盘以外的空白区域来将键盘隐藏,以下我总结出了几种隐藏键盘的方法: 首先说明两种可以让键盘隐藏的Method: 1.[view endEditing:YES]  这个方法可以让整个view取消第一响应者,从而让所有