objective-c - iOS 6 UIGestures (Tap) 停止使用 QLPreviewController

标签 objective-c ipad ios5 ios6 qlpreviewcontroller

目前我在导航 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/

相关文章:

objective-c - 如何以编程方式与 "iPad keyboard hiding button"交互?

ios - 在 UILabel 中检测 url

iPad mini 和第 4 代机器 ID

ios - 通过程序开发多个图表

iphone - 如何知道 iOS 设备是通过 USB 还是 Wall Port Charger 连接的?

objective-c - Objc - 在 ivars 和实例方法上调用和设置值

iphone - 如何在单击自定义附件按钮时获取 UITableView 中单元格的索引路径?

iphone - 配置自动布局后出现大量错误

objective-c - iOS 在哪里本地保存可以重新下载的图像?

ios - 从 JSON 哈希中获取值