我有一个ViewController#1,它是导航控制器的根视图控制器,有
self.navigationController.navigationBarHidden = YES;
ViewController#1告诉其导航控制器推送ViewController#2,它有
self.navigationController.navigationBarHidden = NO;
当我想通过从屏幕左侧滑动从ViewController#2返回到ViewController#1时,我会看到我的视图作为我附加的屏幕截图。当我向右移动手指时捕捉到这一点,因此当我向右滑动时,右上方的黑色区域变得越来越小,直到ViewController#1覆盖了所有屏幕区域。
我猜这是由两个视图控制器之间的隐藏/可见导航栏差异引起的。
我想了解是否有可能摆脱这个黑色区域。
答案 0 :(得分:11)
正如HoanNguyen所讨论的那样,我已经将我的代码隐藏/显示在viewWillAppear / Disappear上的导航栏,但最后我发现诀窍是将值设置为动画。很奇怪,但这解决了我的问题,黑色区域现在已经消失了:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:self.shouldHideNavBar animated:animated];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:!self.shouldHideNavBar animated:animated];
}
答案 1 :(得分:3)
您应该将您的代码集隐藏/显示在viewWillAppear或viewDidAppear中。