美文网首页
ios 导航栏设置显示和隐藏问题

ios 导航栏设置显示和隐藏问题

作者: 叶情宇 | 来源:发表于2018-02-28 10:10 被阅读5次

项目中有时候需要隐藏导航的需求,常用的方法有很多
1.方法一

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}
-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}

对于方法一来说是有一些弊端的,尤其是在点击tabbar切换页面的时候,再回到这个页面会出现隐藏动画,这样显的很难受,不是我们想要的,我们可以通过下面的方法解决上面的问题

@interface QSProfileController ()<UINavigationControllerDelegate>

@end

@implementation QSProfileController

- (void)viewDidLoad {
    [super viewDidLoad];
}

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

相关文章

网友评论

      本文标题:ios 导航栏设置显示和隐藏问题

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