Reputation: 281
I am using SWRevealViewController
for sliding menu. I have added tap gesture in the front view using:
SWRevealViewController *revealController = [self revealViewController];
[revealController tapGestureRecognizer];
My tap gesture is working. But problem is that my front view has button which require the taps to navigate to other screens. IS there any way to disable the tap gesture when frontView is enabled and enable tap Gesture when menu is pressed?
Upvotes: 1
Views: 331
Reputation: 1441
In Front view controller add this
SWRevealViewController *objRevealViewController = [self revealViewController];
[self.view addGestureRecognizer:objRevealViewController.tapGestureRecognizer];
Upvotes: 0
Reputation: 1778
Import SWRevealViewController.h
in your slide out menu class. Then in your sliding menu viewWillAppear
method put this line-
-(void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:YES];
self.revealViewController.frontViewController.revealViewController.tapGestureRecognizer.enabled=false;
}
and in viewWillDisappear
method put this line-
-(void) viewWillDisappear:(BOOL)animated
{
self.revealViewController.frontViewController.revealViewController.tapGestureRecognizer.enabled=true;
}
Upvotes: 0
Reputation: 82759
I think you tried this
create the delegate on your class
@interface xxxViewController () <SWRevealViewControllerDelegate>
on delegate method as
- (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position
{
if (position == FrontViewPositionLeftSide) {
self.tapGestureRecognizer.enabled = YES;
// disable your current class action
}
else if (position == FrontViewPositionLeft){
self.tapGestureRecognizer.enabled = NO;
// enable your current class action
}
}
Upvotes: 2