iOS导航栏隐藏及跳转

iOS一级页面隐藏导航栏,但是还是可以push和pop,只需要两句代码。

- (void)viewWillAppear:(BOOL)animated {

//如果出现返回出现黑色部分,加上这段代码    
    [self.navigationController setNavigationBarHidden:YES animated:YES];
    
}

- (void)viewWillDisappear:(BOOL)animated {

    [self.navigationController setNavigationBarHidden:NO animated:YES];
}

这样写会有一个问题,进入页面的时候导航栏会有一个向上消失的动画。
用下面这个方法,就不会出现这个问题了,在navigationController的代理方法中实现。

- (void)viewDidLoad {
    [super viewDidLoad];

    // 设置导航控制器的代理为self
    self.navigationController.delegate = self;
}


#pragma mark - UINavigationControllerDelegate
// 将要显示控制器
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    // 判断要显示的控制器是否是自己
    BOOL isShowPersonPage = [viewController isKindOfClass:[self class]];
    
    [self.navigationController setNavigationBarHidden:isShowPersonPage animated:YES];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容