From 9762d5e669ffc34ed8bb20e514bb6b9dfd82a51a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Visona=CC=80?= Date: Wed, 13 Apr 2016 14:42:32 +0200 Subject: [PATCH 1/2] added method shouldShowMenuViewController in RESideMenuDelegate --- RESideMenu/RESideMenu.h | 2 ++ RESideMenu/RESideMenu.m | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/RESideMenu/RESideMenu.h b/RESideMenu/RESideMenu.h index 6682ae1b..ea1d422e 100644 --- a/RESideMenu/RESideMenu.h +++ b/RESideMenu/RESideMenu.h @@ -86,6 +86,8 @@ @protocol RESideMenuDelegate +- (BOOL)sideMenu:(RESideMenu *)sideMenu shouldShowMenuViewController:(UIViewController *)menuViewController; + @optional - (void)sideMenu:(RESideMenu *)sideMenu didRecognizePanGesture:(UIPanGestureRecognizer *)recognizer; - (void)sideMenu:(RESideMenu *)sideMenu willShowMenuViewController:(UIViewController *)menuViewController; diff --git a/RESideMenu/RESideMenu.m b/RESideMenu/RESideMenu.m index b6b8efd9..a096ebae 100644 --- a/RESideMenu/RESideMenu.m +++ b/RESideMenu/RESideMenu.m @@ -251,6 +251,11 @@ - (void)viewDidLoad - (void)presentMenuViewContainerWithMenuViewController:(UIViewController *)menuViewController { + + if(! [self.delegate sideMenu:self shouldShowMenuViewController:self.leftMenuViewController]){ + return; + } + self.menuViewContainer.transform = CGAffineTransformIdentity; if (self.scaleBackgroundImageView) { self.backgroundImageView.transform = CGAffineTransformIdentity; @@ -560,6 +565,15 @@ - (void)panGestureRecognized:(UIPanGestureRecognizer *)recognizer } CGPoint point = [recognizer translationInView:self.view]; + if (point.x > 0) { + if(! [self.delegate sideMenu:self shouldShowMenuViewController:self.leftMenuViewController]){ + return; + } + } else { + if(! [self.delegate sideMenu:self shouldShowMenuViewController:self.rightMenuViewController]){ + return; + } + } if (recognizer.state == UIGestureRecognizerStateBegan) { [self updateContentViewShadow]; From f635f3cc760f217674a7af78fbb48fb8b425bab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Visona=CC=80?= Date: Wed, 13 Apr 2016 14:58:44 +0200 Subject: [PATCH 2/2] method shouldShowMenuViewController in RESideMenuDelegate made optional --- RESideMenu/RESideMenu.h | 3 +-- RESideMenu/RESideMenu.m | 24 ++++++++++++++---------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/RESideMenu/RESideMenu.h b/RESideMenu/RESideMenu.h index ea1d422e..fdb3cc95 100644 --- a/RESideMenu/RESideMenu.h +++ b/RESideMenu/RESideMenu.h @@ -86,9 +86,8 @@ @protocol RESideMenuDelegate -- (BOOL)sideMenu:(RESideMenu *)sideMenu shouldShowMenuViewController:(UIViewController *)menuViewController; - @optional +- (BOOL)sideMenu:(RESideMenu *)sideMenu shouldShowMenuViewController:(UIViewController *)menuViewController; - (void)sideMenu:(RESideMenu *)sideMenu didRecognizePanGesture:(UIPanGestureRecognizer *)recognizer; - (void)sideMenu:(RESideMenu *)sideMenu willShowMenuViewController:(UIViewController *)menuViewController; - (void)sideMenu:(RESideMenu *)sideMenu didShowMenuViewController:(UIViewController *)menuViewController; diff --git a/RESideMenu/RESideMenu.m b/RESideMenu/RESideMenu.m index a096ebae..822aecb7 100644 --- a/RESideMenu/RESideMenu.m +++ b/RESideMenu/RESideMenu.m @@ -251,9 +251,10 @@ - (void)viewDidLoad - (void)presentMenuViewContainerWithMenuViewController:(UIViewController *)menuViewController { - - if(! [self.delegate sideMenu:self shouldShowMenuViewController:self.leftMenuViewController]){ - return; + if ([self.delegate conformsToProtocol:@protocol(RESideMenuDelegate)] && [self.delegate respondsToSelector:@selector(sideMenu:shouldShowMenuViewController:)]){ + if(! [self.delegate sideMenu:self shouldShowMenuViewController:self.leftMenuViewController]){ + return; + } } self.menuViewContainer.transform = CGAffineTransformIdentity; @@ -557,6 +558,7 @@ - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceive - (void)panGestureRecognized:(UIPanGestureRecognizer *)recognizer { + if ([self.delegate conformsToProtocol:@protocol(RESideMenuDelegate)] && [self.delegate respondsToSelector:@selector(sideMenu:didRecognizePanGesture:)]) [self.delegate sideMenu:self didRecognizePanGesture:recognizer]; @@ -565,13 +567,15 @@ - (void)panGestureRecognized:(UIPanGestureRecognizer *)recognizer } CGPoint point = [recognizer translationInView:self.view]; - if (point.x > 0) { - if(! [self.delegate sideMenu:self shouldShowMenuViewController:self.leftMenuViewController]){ - return; - } - } else { - if(! [self.delegate sideMenu:self shouldShowMenuViewController:self.rightMenuViewController]){ - return; + if ([self.delegate conformsToProtocol:@protocol(RESideMenuDelegate)] && [self.delegate respondsToSelector:@selector(sideMenu:shouldShowMenuViewController:)]){ + if (point.x > 0) { + if(! [self.delegate sideMenu:self shouldShowMenuViewController:self.leftMenuViewController]){ + return; + } + } else { + if(! [self.delegate sideMenu:self shouldShowMenuViewController:self.rightMenuViewController]){ + return; + } } }