iOS 6 UIGestures(Tap)停止使用QLPreviewController [英] iOS 6 UIGestures (Tap) stops working with QLPreviewController
问题描述
目前我在导航控制器中使用QLPreviewController。 (pushViewController)
要隐藏导航栏,我使用UITapGestureRecognizer。用户可以通过单次触摸(点击)显示/隐藏导航栏。
这在iOS5中效果很好
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear中:动画];
UITapGestureRecognizer * tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped :)];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setDelegate:self];
[[自我查看] 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文档,导航栏会隐藏导航栏下的工作表按钮。
Ty。
因为ios 6 QLPreviewController实际上是一个完全独立的应用程序(单独的过程和所有内容)
Apple使用XPC:
- http://oleb.net/blog/2012/10/remote-view-controllers-in-ios-6/
-
https://twitter.com/eldudi/statuses/253438028163457024
=>所以当你推动它时,你的整个应用程序会移动到bg,包括它的窗口和手势识别器
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屋!