所以我有两个UIViewControllers - VC1的属性为self.navigationController.navigationBarHidden = YES;
,VC2的属性设置为NO
。
我在VC2中执行以下操作:
- (void)viewWillAppear:(BOOL)animated{
// Showing navigation bar for VC2
self.navigationController.navigationBarHidden = NO;
}
- (void)viewWillDisappear:(BOOL)animated{
// Hiding navigation bar for VC1
self.navigationController.navigationBarHidden = YES;
}
它完美隐藏了VC1的NavigationBar
。但是,当我使用所谓的interactivePopGestureRecognizer
(即用我的手指向右滑动UIViewController
以弹出它)时,navigationBar
立即隐藏,甚至95%的视图是可见的:
将代码放到viewDidDisappear
也无济于事,因为NavBar
停留在视图上(可能因为它从未被调用过)。这是 NOT 我需要的东西:
在这种情况下,最好的解决方法是什么?当VC2向右滑出并且 出现在VC1上时,我们如何让navBar
保持?
答案 0 :(得分:1)
答案证明非常简单,虽然它在任何地方都没有记录(或者至少我还没有找到)。
而不是self.navigationController.navigationBarHidden = NO
应该使用[[self navigationController] setNavigationBarHidden:NO animated:YES]
- 这与iOS7
的{{1}}完美配合,interactivePopGestureRecognizer
是新animatedTransitions
API的一部分。希望这可以帮助将来的某个人。
答案 1 :(得分:0)
删除VC2 self.navigationController.navigationBarHidden = YES;
和
- (void)viewWillDisappear:(BOOL)animated
将其放入VC1 - (void)viewDidAppear:(BOOL)animated
我认为,它可能符合您的要求
谢谢,
萨蒂亚