隐藏自定义tabbar(关于tabbar的hide属性对于自定义无效)

背景: 最近在做一个项目中 需要在tabbar中的一个子控制器中隐藏tabbar。 我是tabbar我是自定义的XIB 视图addsubview到tabbar上。

首先po 一个在网上查到的解决方法:

UIWindow * window = [UIApplication sharedApplication].keyWindow;

CustomTabBar * ct =(CustomTabBar *) window.rootViewController;

ct.bgView.hidden = YES;

原文地址:http://blog.csdn.net/zx6268476/article/details/45692141

坑:我在跳出来的时候 tabbar 不显示 - -

我再说我的解决思路:tabbarViewcongtroller 都是通过 push和 pop 方法进行 自控制器的跳转的,所以我们自定义navigationcontroller,来拦截push和pop 方法。废话不多说,上代码

1.  首先自定义一个CustomNavigationController(名字自己起)继承与UINavigationController,CustomNavigationController.m中拦截系统的push方法,进行重写:

-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
   
    [super pushViewController:viewController animated:animated];
}
-(UIViewController *)popViewControllerAnimated:(BOOL)animated{
    return [super popViewControllerAnimated:animated];
}

2.  在自定义的TabBarController.m里写如下方法:

-(void)setHidesBottomBarWhenPushed:(BOOL)hidesBottomBarWhenPushed{
    你的自定义View.hidden = hidesBottomBarWhenPushed;
    self.tabBar.hidden = hidesBottomBarWhenPushed;
}

3.  在你要隐藏tabbar的界面添加如下两个方法:

-(void)viewWillAppear:(BOOL)animated{
    self.tabBarController.hidesBottomBarWhenPushed = YES;
}
-(void)viewWillDisappear:(BOOL)animated{
    self.tabBarController.hidesBottomBarWhenPushed = NO;
}

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo }
span.s1 { }

时间: 2024-10-20 15:31:10

隐藏自定义tabbar(关于tabbar的hide属性对于自定义无效)的相关文章

UIScrollView UITableView 上拉隐藏导航栏和tabbar 下拉显示导航栏和tabbar

//UIScrollView  UITableView 上拉隐藏导航栏和tabbar 下拉显示导航栏和tabbar-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ CGPoint translation = [scrollView.panGestureRecognizer translationInView:scrollView.superview];    if

自定义UITabBarController和TabBar

系统自带的UITabBarController,有个内置的UITabBar,在iOS7和iOS6中的风格完全不一样. ios7 ios6 那么如何自定义UITabBar呢 1.自定义UITabBarController:新建一个类,继承自UITabBarController 2.新建一个类,继承自UIView,用来做TabBar,封装内部按钮 3.在自定义的UITabBarController中创建自定义的TabBar,添加到默认的UITabBar上面

超酷的计步器APP——炫酷功能实现,自定义水波纹特效、自定义炫酷开始按钮、属性动画的综合体验

超酷的计步器APP--炫酷功能实现,自定义水波纹特效.自定义炫酷开始按钮.属性动画的综合体验 好久没写博客了,没给大家分享技术了,真是有些惭愧.这段时间我在找工作,今年Android的行情也不怎么好,再加上我又是一个应届生,所以呢,更是不好找了.但是我没有放弃,经过自己的不懈努力,还是找到了自己喜欢的Android工作,心里的一块石头终于落下了.但是迎接我来的是更多的挑战,我喜欢那种不断的挑战自我,在困难中让自己变得更强大的感觉.相信阳光总在风雨后,因为每一个你不满意的现在,都有一个你没有努力的

自定义layout中布局文件的属性

以前一直都是用ndroid自带的属性,突然发现自定义xml属性也是非常重要,于是总结了一下. 在values文件夹下新建的attr.xml文件,该文件为自定义属性. //attr.xml <?xml version="1.0" encoding="utf-8"?> <resources> <!-- MyView为自定义视图类 --> <!-- 注意:自定义属性必须一个不少的添加到布局文件中,否则编译失败 --> <

Qt+QGIS二次开发:自定义类实现查询矢量数据的属性字段值(图查属性)

在GIS领域,有两种重要的查询操作,图查属性和属性查图. 本文主要介绍如何在QGIS中通过从QgsMapToolIdentify中派生自定义类实现查询矢量数据的属性字段值(图查属性). 重点参考资料: 1.QGis二次开发基础 -- 属性识别工具的实现 2.QGis(三)查询矢量图层的要素属性字段值 原文地址:https://www.cnblogs.com/rainbow70626/p/10383034.html

如何编写自定义标签?具体流程与分析(自定义标签快速入门)

1.自定义标签简介 自定义标签主要用于移除Jsp页面中的java代码 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 1.编写一个实现Tag接口的Java类(标签处理器类) 2.在WEB-INF中编写标签库描述符(tld)文件,在tld文件中对标签处理器类描述成一个标签 (参考tomcat中的examples 项目中jsp部分) 2.自定义标签的执行流程的分析 JSP引擎将遇到自定义标签时,首先创建标签处理器类的实例对象,然后按照JSP规范定义的通信规则依次调用它的方法.

自定义ASP.NET Identity(三)- 实现自定义MySQL ASP.NET Identity存储提供程序

ASP.NET Identity是一个可扩展的系统,你可以创建属于你自己的存储提供程序并且将它集成到你的应用中,而不需要重构你的应用.本章将介绍如何创建一个ASP.NET Identity的MySQL存储提供程序.关于如何创建自定义存储提供程序的概述请查看自定义ASP.NET Identity(一)- 自定义ASP.NET Identity存储提供程序.要完成这个指南,你必须安装Visual Studio 2013 Update 2. 这个指南将包含如下内容: 怎样在Azure上创建MySQL数

[IOS 实现TabBar在Push后的隐藏 以及 两级Tabbar的切换]

翻了好多网页都没找到资料,自己试了下终于成功了,遂分享一下. 1.实现TabBar在Push后的隐藏 假如结构是这样 NavController->A->B,我们想要实现在A里有Tabbar,Push到B后Tabbar消失(参考淘宝首页点击任何广告页面后Push,底部Tabbar消失) 在A中创建B时 DetailinfoViewController *detailinfo=[[DetailinfoViewController alloc]init]; detailinfo.hidesBott

隐藏底部导航栏tabbar

在有tabbarcontroller时,A界面push到B界面想隐藏底部tabbar,从B界面返回A后再显示tabbar.那么在控制器A中可以设置 -(void)clickTheSettingBtn{ ControllerB *vcB = [[ControllerB alloc]init]; //在跳转之前设置为YES self.hidesBottomBarWhenPushed = YES; [self.navigationController pushViewController:vcB an