美文网首页
优雅的隐藏导航栏

优雅的隐藏导航栏

作者: 东了个尼 | 来源:发表于2020-04-15 10:15 被阅读0次

    UINavigationController提供了一个代理方法,这个方法会在有导航栏的控制器中,当控制器加载完,导航栏要出现的时候会调用。恰当的使用这个方法可以优雅的隐藏显示导航栏

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
      
    }
    

    在基类BaseNavigationController中遵循UINavigationControllerDelegate协议

    BaseNavigationController ()<UINavigationControllerDelegate>
    使BaseNavigationController  成为UINavigationController的代理self.delegate = self;
    

    最后一步实现代理方法

    其中MineViewController 就是你要隐藏导航栏的类名称
    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
        BOOL isHiddenNavBar = [viewController isKindOfClass:[MineViewController class]];
        [self.navigationController setNavigationBarHidden:isHiddenNavBar animated:YES];
    }
    
    优雅的在跳转页面的时候隐藏tabbar
    #pragma mark - overwrite 目的是跳转导航栏的时候 自动隐藏tabbar
    - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
    {
        if (self.childViewControllers.count >= 1) {
            viewController.hidesBottomBarWhenPushed = YES;
        }
    
        [super pushViewController:viewController animated:animated];
    }
    

    相关文章

      网友评论

          本文标题:优雅的隐藏导航栏

          本文链接:https://www.haomeiwen.com/subject/zlpqvhtx.html