Reputation: 470
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.
Upvotes: 4
Views: 4666
Reputation: 50109
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
Upvotes: 7