美文网首页
iOS一行代码实现简单优雅的隐藏导航栏

iOS一行代码实现简单优雅的隐藏导航栏

作者: Aexsi | 来源:发表于2021-04-13 15:11 被阅读0次

    代码很简单,只需写一个继承UIViewController的基类BasisController

    BasisController.h

    #import <UIKit/UIKit.h>
    @interface BasisController : UIViewController
    ///是否隐藏导航栏
    @property (nonatomic, assign) BOOL hideNavBar;
    @end
    

    BasisController.m

    #import "BasisViewController.h"
    @interface BasisController () 
    @end
    
    @implementation BasisController 
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    }
    
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        [self.navigationController setNavigationBarHidden:self.hideNavBar animated:animated];
    }
    
    @end
    

    需要隐藏导航栏的VC继承BasisController,然后设置self.hideNavBar = YES就可以了,这种方法只对当前页面生效,不会影响到后面的页面,并且在切换tabbar、滑动返回、push、present时导航栏不会有任何的闪烁、跳动等异常动画

    这种方法需要所有想要隐藏导航栏的VC都继承这个基类,对项目有一定的侵入性。如果想要无侵入性的方式,可以给UIViewController写个分类,使用runtime生成hideNavBar属性和交换viewWillAppear方法来实现。

    相关文章

      网友评论

          本文标题:iOS一行代码实现简单优雅的隐藏导航栏

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