iOS 优雅地隐藏导航栏NavigationBar (Objc)

Posted Ficow Shen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 优雅地隐藏导航栏NavigationBar (Objc)相关的知识,希望对你有一定的参考价值。

 

 

 

@interface FSViewController () <UINavigationControllerDelegate>

@end

@implementation FSViewController

#pragma mark - lifeCycle
- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 设置导航控制器的代理为self
    self.navigationController.delegate = self;
}


// 将要显示控制器
#pragma mark - UINavigationControllerDelegate
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    // 判断要显示的控制器是否是自己
    BOOL isSelf = [viewController isKindOfClass:[self class]];
    [self.navigationController setNavigationBarHidden:isSelf animated:YES];
}

 

 

注意:

不推荐使用点访问方式来设置导航栏的显示/隐藏,因为如果在设置导航栏隐藏的同时有动画在进行,

导航栏的位置就会出现黑色块,这样做是极其影响用户体验的!

 

 

参考资料:http://blog.csdn.net/ws1352864983/article/details/51932388

 

 


 转载请注明出处:http://www.cnblogs.com/ficow/p/7141984.html

以上是关于iOS 优雅地隐藏导航栏NavigationBar (Objc)的主要内容,如果未能解决你的问题,请参考以下文章

iOS 导航栏的navigationBar.hidden与navigationBarHidden的区别

iOS开发-隐藏导航栏线

Flutter NavigationBar 优雅的实现底部导航栏菜单

iOS 7隐藏导航栏时如何更改状态栏的颜色?

在 iOS13 + xcode 11 中隐藏导航栏

在iOS 7中隐藏导航栏时,如何更改状态栏的颜色?