当在工程中,会存在部分页面需要显示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];
}