iOS 导航栏隐藏方式 笔记

场景:某个控制器不需要导航

  • 直接使用:
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}
  • 缺点:
    如果这个不需要导航的控制器,
    是TabBarController的一个子控制器,
    在切换tabBar的时候会有一个导航栏上滑消失的动画

  • 方案:
    在需要导航的控制器内

- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationController.delegate = self;
}

#pragma mark - UINavigationControllerDelegate
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    BOOL isMe = [viewController isKindOfClass:[self class]];
    [self.navigationController setNavigationBarHidden:isMe animated:YES];
}

- (void)dealloc {
    self.navigationController.delegate = nil;
}

参考:

iOS导航栏的正确隐藏方式:https://www.jianshu.com/p/1f72cd2771fe

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 众所周知,日本是个岛国,无论是土地还是资源,相比我中华,都是匮乏的,但是他们的民心跟创造力,却是优于我们,小小岛国...
    睿哥侃车阅读 3,395评论 0 1
  • 我愿 做你笔下的向日葵 与太阳共舞, 与月亮倾诉, 我愿 看到你的笑脸, 抹去你的泪水 我愿 在星辰满天的世界里 ...
    莲花白雪阅读 1,796评论 0 1
  • part8 冷战 从书店出来之后,李帝努总是觉得黄仁俊有意疏远他,原本他和黄仁俊一前一后走着,还能说说话,现在和黄...
    几几几分钟阅读 1,810评论 0 0

友情链接更多精彩内容