关于NavigationBar遇到的坑

2017-04-05  本文已影响6人  民谣里不是故事就是诗丶

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

}
上一篇下一篇

猜你喜欢

热点阅读