目前我在导航 Controller 中使用 QLPreviewController。 (推送 View Controller )
为了隐藏导航栏,我使用了 UITapGestureRecognizer。用户可以通过单次触摸(点击)显示/隐藏导航栏。 这在 iOS5 中运行良好
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setDelegate:self];
[[self view] addGestureRecognizer:tapRecognizer];
[tapRecognizer release];
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
- (void)tapped:(UIGestureRecognizer*)gestureRecognizer
{
//hide -/- show navigation bar
[[self navigationController] setNavigationBarHidden:![[[self navigationController] navigationBar] isHidden] animated:YES];
}
但是在 iOS 6 的发布版本中,点击现在完全被忽略了,所以我不能再隐藏我的导航栏了。
为什么要隐藏导航栏?
如果您打开 .numbers 文档,导航栏会隐藏导航栏下方的“工作表按钮”。
是的。
最佳答案
自 ios 6 以来,QLPreviewController 实际上是一个完全独立的应用程序(独立的进程和所有内容)
Apple 为此使用 XPC:
=> 所以当你按下它时,你的整个应用程序都会移动到 bg,包括它的窗口和手势识别器
关于objective-c - iOS 6 UIGestures (Tap) 停止使用 QLPreviewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12675378/