@@ -67,6 +67,7 @@ - (void)_showMasterViewControllerAnimated:(BOOL)animated;
6767
6868- (void )_rightSwipeGestureRecognized : (UISwipeGestureRecognizer *)recognizer ;
6969- (void )_leftSwipeGestureRecognized : (UISwipeGestureRecognizer *)recognizer ;
70+ - (void )_tapGestureRecognized : (UITapGestureRecognizer *)recognizer ;
7071
7172- (void )_morphMasterViewInAnimated : (BOOL )animated ;
7273- (void )_morphMasterViewOutAnimated : (BOOL )animated ;
@@ -84,7 +85,7 @@ - (void)_masterViewWillAppearAndInvalidateBarButtonItem;
8485
8586
8687@implementation CTSplitViewController
87- @synthesize delegate=_delegate, viewControllers=_viewControllers, leftSwipeGestureRecognizer=_leftSwipeGestureRecognizer, rightSwipeGestureRecognizer=_rightSwipeGestureRecognizer, supportedMasterViewOrientations=_supportedMasterViewOrientations;
88+ @synthesize delegate=_delegate, viewControllers=_viewControllers, leftSwipeGestureRecognizer=_leftSwipeGestureRecognizer, rightSwipeGestureRecognizer=_rightSwipeGestureRecognizer, tapGestureRecognizer=_tapGestureRecognizer, supportedMasterViewOrientations=_supportedMasterViewOrientations;
8889
8990#pragma mark - setters and getters
9091
@@ -240,11 +241,19 @@ - (void)loadView {
240241
241242 _rightSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc ] initWithTarget: self action: @selector (_rightSwipeGestureRecognized: )];
242243 _rightSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
244+ _rightSwipeGestureRecognizer.delegate = self;
243245 [self .view addGestureRecognizer: _rightSwipeGestureRecognizer];
244246
245247 _leftSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc ] initWithTarget: self action: @selector (_leftSwipeGestureRecognized: )];
246248 _leftSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
249+ _leftSwipeGestureRecognizer.delegate = self;
247250 [self .view addGestureRecognizer: _leftSwipeGestureRecognizer];
251+
252+ _tapGestureRecognizer = [[UITapGestureRecognizer alloc ] initWithTarget: self action: @selector (_tapGestureRecognized: )];
253+ _tapGestureRecognizer.numberOfTapsRequired = 1 ;
254+ _tapGestureRecognizer.numberOfTouchesRequired = 1 ;
255+ _tapGestureRecognizer.delegate = self;
256+ [self .view addGestureRecognizer: _tapGestureRecognizer];
248257}
249258
250259- (void )viewDidLoad
@@ -263,6 +272,7 @@ - (void)viewDidUnload
263272 _detailsView = nil ;
264273 _rightSwipeGestureRecognizer = nil ;
265274 _leftSwipeGestureRecognizer = nil ;
275+ _tapGestureRecognizer = nil ;
266276}
267277
268278#pragma mark - rotation support
@@ -291,15 +301,9 @@ - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceO
291301 _masterView.state = CTSplitViewControllerMasterViewStateVisible;
292302 _masterView.frame = self.visibleMasterFrame ;
293303 _detailsView.frame = self.visibleMasterDetailsFrame ;
294-
295- _leftSwipeGestureRecognizer.enabled = NO ;
296- _rightSwipeGestureRecognizer.enabled = NO ;
297304 } else {
298305 [self _unloadMasterView ];
299306 _detailsView.frame = self.hiddenMasterDetailsFrame ;
300-
301- _leftSwipeGestureRecognizer.enabled = YES ;
302- _rightSwipeGestureRecognizer.enabled = YES ;
303307 }
304308}
305309
@@ -361,6 +365,21 @@ - (BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers
361365 return NO ;
362366}
363367
368+ #pragma mark - UIGestureRecognizerDelegate
369+
370+ - (BOOL )gestureRecognizerShouldBegin : (UIGestureRecognizer *)gestureRecognizer
371+ {
372+ if (gestureRecognizer == _tapGestureRecognizer) {
373+ return _masterView.state == CTSplitViewControllerMasterViewStateMorphedIn;
374+ } else if (gestureRecognizer == _leftSwipeGestureRecognizer) {
375+ return _masterView.state == CTSplitViewControllerMasterViewStateMorphedIn;
376+ } else if (gestureRecognizer == _rightSwipeGestureRecognizer) {
377+ return ![self _isMasterViewControllerVisibleInInterfaceOrientation: self .interfaceOrientation] && _masterView.state != CTSplitViewControllerMasterViewStateMorphedIn;
378+ }
379+
380+ return YES ;
381+ }
382+
364383#pragma mark - private implementation ()
365384
366385- (void )_removeViewControllers
@@ -419,9 +438,6 @@ - (void)_hideMasterViewControllerAnimated:(BOOL)animated
419438 void (^completionBlock)(BOOL finished) = ^(BOOL finished) {
420439 [self .masterViewController viewDidDisappear: animated];
421440 [self _unloadMasterView ];
422-
423- _leftSwipeGestureRecognizer.enabled = YES ;
424- _rightSwipeGestureRecognizer.enabled = YES ;
425441 };
426442
427443
@@ -525,6 +541,12 @@ - (void)_leftSwipeGestureRecognized:(UISwipeGestureRecognizer *)recognizer
525541 }
526542}
527543
544+ - (void )_tapGestureRecognized : (UITapGestureRecognizer *)recognizer
545+ {
546+ NSLog (@" Wow, recognized" );
547+ #warning implement
548+ }
549+
528550- (void )_morphMasterViewInAnimated : (BOOL )animated
529551{
530552 if (!self.isMasterViewLoaded ) {
0 commit comments