关于NavigationBar遇到的坑


当在工程中,会存在部分页面需要显示navigationBar,部分页面需要隐藏的情况。

经实验证明,有两点需要注意,

1、要先重写子类的方法,再调用super的hidden方法,不然会导致页面切换一半时出现页面层级不正确的异常。

2、不要直接使用self.navigationController.navigationBarHidden=YES这种方式,而应该采用set:animated:方法来触发动画效果。

- (void)viewWillAppear:(BOOL)animated

{

//根据偏移量判断是否显示导航栏

floatoffset =self.listView.contentOffset.y;

if(offset >=SCREEN_HEIGHT+3*kfuncCellViewHeight) {

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

}else{

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

}

[super viewWillAppear:animated];

}

- (void)viewWillDisappear:(BOOL)animated

{

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

[super viewWillDisappear:animated];

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容