tabbar隐藏 重写navigation

//
//  ZFNavigationController.m
//  Cartext
//
//  Created by 谢泽锋 on 16/3/20.
//  Copyright ? 2016年 xiezefeng. All rights reserved.
//

#import "ZFNavigationController.h"

@interface ZFNavigationController ()

@end

@implementation ZFNavigationController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}
//-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
//    if (self.viewControllers.count > 0) {
//        viewController.hidesBottomBarWhenPushed = YES;
//    }
//    [super pushViewController:viewController animated:YES];
//}
-(UIViewController *)popViewControllerAnimated:(BOOL)animated
{
    if (self.viewControllers.count > 0) {
        
        self.tabBarController.tabBar.hidden=YES;
    }else{
        self.tabBarController.tabBar.hidden=NO;
    }
    
    return [super popViewControllerAnimated:animated];
}

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    // 第一个 控制器 不需要隐藏tabbar
    if (self.viewControllers.count > 0) {
        viewController.hidesBottomBarWhenPushed = YES;
        self.tabBarController.tabBar.hidden=YES;
    }else{
        self.tabBarController.tabBar.hidden=NO;
    }
    [super pushViewController:viewController animated:animated];
}
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    // 第一个 控制器 不需要隐藏tabbar
    if (self.viewControllers.count > 2) {
        [self.tabBarController.tabBar setHidden:YES];
    } else {
        [self.tabBarController.tabBar setHidden:NO];
    }
    return [super popToViewController:viewController animated:animated];
}

- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
{
    [self.tabBarController.tabBar setHidden:NO];
    
    return [super popToRootViewControllerAnimated:animated];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    if (self.viewControllers.count > 1) {
        [self.tabBarController.tabBar setHidden:YES];
    } else {
        [self.tabBarController.tabBar setHidden:NO];
    }
}
@end

时间: 2024-08-24 15:17:48

tabbar隐藏 重写navigation的相关文章

侧滑返回导航栏以及TabBar隐藏和显示带来的坑

用系统的UINavigationBar时,返回手势重若碰到前一个页面有bar,后一个页面没bar,或者反过来时动画非常难看 如下图:因为首页隐藏了导航栏,在侧滑的时候导航栏竟然提前消失了,这是因为在侧滑的过程中就调用了视图将要出现的方法. 解决: 在滑动返回的后要出现的viewController中写下面的代码: //隐藏 - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigatio

【IOS】解决tabBar隐藏与显现 hidesBottomBarWhenPushed问题

今天遇到一个郁闷的问题(以前是完全没问题的): 视图A push 视图B ,以前隐藏UITabBarController的tabBar, 我用它的一个属性hidesBottomBarWhenPushed 将其设置为YES就可以在下一级隐藏Tabbar,但是pop的时候TabBar不显现了 后来在网上找到的解决办法: 把 self.hidesBottomBarWhenPushed = YES;中的self改成你要push进入的那个viewcontroller eg: 1 LoginViewCont

Tabbar隐藏问题的解决方案

项目中有需求是A视图控制器push之后B视图控制器需要隐藏底部的tabbar,在pop之后A视图控制器仍然显示tabbar. 其实不需要在push操作时敲 self.hidesBottomBarWhenPushed = NO;,然后再pop返回时再设置成NO. 对于这个全局属性,可以在A中 - (void)viewWillAppear:(BOOL)animated { self.hidesBottomBarWhenPushed = YES; } - (void)viewDidDisappear:

tabBar隐藏方式

如果是从A push到B,并且把A的一个东西传到B,那么在push时就要隐藏tabBar,并且要在B ViewController设置一个接收A传到的属性. 这种方式一般用在表格点选,要把表格点选的内容传到B去. A中的代码大概就是这样: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { Friends *f = self.allFriends[indexPa

隐藏TabBar的一些方法小结(适用与各种情况)

版权声明:本文为博主原创文章,未经博主允许不得转载. [cpp] view plain copy 在项目中经常遇到隐藏tabBar,实力很多种方法,可以解决不同情况下问题 使用中涉及到view的层次关系,下面的使用方法 1.2不做说明:在使用3.4方法时注意要在tabBar所在的rootView中调用实现(必要时使用委托,已达到所需要的目的) 举例:A(rootView 是tabBarCtroller):B(A的subView):C(B通过pushViewController) 如果想要C出现的

IOS研究之UITabBarController隐藏tabBar以及addChildViewController

 最近我所在的项目组对项目进行了一些基础组件的优化,其中有关于UITabBarController隐藏tabBar的问题感觉有必要总结下. 一,需求分析 先来说说项目基本需求:整个项目由左侧栏和主视图组成,主视图主体是一个UITabBarController,下属几个嵌套了UINavigationController的UIViewController. 要求:当在页面上下滑动的时候,根据用户手势需要隐藏显示底部栏,也就是默认的UITabBarController的tabBar. 我在设计的时

java的覆盖重写隐藏和C#中的不同

先看下C#中的: C#中覆盖 隐藏 重写这三种有不同的意义,而Java中不同. 1. java中没有new ,使用new会报错,编译不通过. 2. java中重写和覆盖应该是一个意思 static class Human { protected void sayHello() { System.out.println("human"); } } static class Man extends Human { protected void sayHello() {//不会有警告,直接重

隐藏TabBar,真机有效

当push到下一级控制器时TabBar隐藏,当pop回控制器时显示 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];    if (self) {        self.hidesBottomBarWhenPushed=YES;    }   

中间凸出(百思tabbar上面修改) 按钮范围,nav改色。

// // WMTabBarController.m // 百思不得姐 // // Created by 王蒙 on 15/7/22. // Copyright (c) 2015年 wm. All rights reserved. // #import "WMTabBarController.h" #import "FirstViewController.h" #import "SecondViewController.h" #import &q