美文网首页
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