iOS 6 UIGestures (Tap) 停止使用 QLPreviewController [英] iOS 6 UIGestures (Tap) stops working with QLPreviewController

查看:21
本文介绍了iOS 6 UIGestures (Tap) 停止使用 QLPreviewController的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前我在导航控制器中使用 QLPreviewController.(pushViewController)

为了隐藏导航栏,我使用了 UITapGestureRecognizer.用户可以通过单击(点击)显示/隐藏导航栏.这在 iOS5 中运行良好

- (void)viewWillAppear:(BOOL)animated {[超级viewWillAppear:动画];UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];[tapRecognizer setNumberOfTapsRequired:1];[tapRecognizer setDelegate:self];[[自拍] addGestureRecognizer:tapRecognizer];[tapRecognizer 发布];}- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {返回是;}- (void)tapped:(UIGestureRecognizer*)gestureRecognizer{//隐藏 -/- 显示导航栏[[self navigationController] setNavigationBarHidden:![[[self navigationController] navigationBar] isHidden] animated:YES];}

但是在 iOS 6 的发布版本中,现在完全忽略了点击,所以我不能再隐藏我的导航栏了.

为什么要隐藏导航栏?

如果您打开 .numbers 文档,导航栏会隐藏导航栏下方的工作表按钮".

泰.

解决方案

从 ios 6 开始,QLPreviewController 实际上是一个完全独立的应用程序(独立的进程和一切)

Apple 为此使用 XPC:

=> 所以当你推送它时,你的整个应用都会移动到背景,包括它的窗口和手势识别器

Currently I'm using a QLPreviewController in a navigation controller. (pushViewController)

To hide the navigationbar I use a UITapGestureRecognizer. The user can show/hide the navigation bar by a single touch (tap). This worked well in 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];
}

But in the released version of iOS 6 the taps are now completely ignored, so I can't hide my navigation bar anymore.

Reason why I want to hide the navigation bar?

If you open a .numbers document, the navigationbar hides the 'sheet-buttons' under the navigation bar.

Ty.

解决方案

since ios 6 the QLPreviewController is actually a completely seperate app (seperate process and everything)

Apple uses XPC for that:

=> so when you push that, your whole app moves to the bg, including its window and gesture recognizers

这篇关于iOS 6 UIGestures (Tap) 停止使用 QLPreviewController的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆