iOS 6 UIGestures(Tap)停止使用QLPreviewController

时间:2012-10-01 14:35:45

标签: objective-c ipad ios5 ios6 qlpreviewcontroller

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

要隐藏导航栏,我使用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文档,导航栏会隐藏“表单”按钮'在导航栏下。

1 个答案:

答案 0 :(得分:7)

从ios 6开始,QLPreviewController实际上是一个完全独立的应用程序(单独的过程和所有内容)

Apple使用XPC:

=>所以当你按下它时,你的整个应用程序会移动到bg,包括它的窗口和手势识别器