【问题标题】:Interactive pop gesture from view with navigation bar hidden?隐藏导航栏的视图中的交互式弹出手势?
【发布时间】:2014-10-15 00:55:39
【问题描述】:
我有两个视图控制器,其中一个通过标准UINavigationController 推送另一个。第二个视图控制器通过navigationBarHidden 隐藏其导航栏。隐藏该栏似乎会阻止交互式弹出手势识别器工作。我在第二个屏幕上有一个自定义的后退按钮,所以从所有意图和目的来看,它看起来很像一个导航栏,只是透明的等等。
有没有一种方法可以重新启用交互式弹出,同时仍将导航栏隐藏在第二个视图控制器上,但显示在第一个视图控制器上?诚然,我不太确定过渡会是什么,但只是想知道这是否有一个简单的解决方案。
【问题讨论】:
标签:
ios
objective-c
uinavigationcontroller
uigesturerecognizer
【解决方案1】:
假设我们有主视图控制器和详细视图控制器,其中详细视图控制器是推送视图控制器。在主视图控制器上将交互式弹出手势的委托设置为 nil 可以启用交互式弹出手势。
self.navigationController?.interactivePopGestureRecognizer?.delegate = nil
【解决方案2】:
这似乎有效。
@implementation CustomNavigationController
- (void)viewDidLoad {
[super viewDidLoad];
[[self navigationBar] setHidden:YES];
}
@end
在 7.1 iOS 模拟器上测试。
【讨论】:
-
documentation 建议不要这样做: > 要显示或隐藏导航栏,您应该始终通过导航控制器通过更改其 navigationBarHidden 属性或调用 setNavigationBarHidden:animated: 方法来执行此操作。跨度>
-