From 93afd3341d50b02741e7a8d0967563adfc6cabf8 Mon Sep 17 00:00:00 2001 From: Amiel Martin Date: Fri, 29 Apr 2011 15:19:16 -0700 Subject: [PATCH] hide popover when the barbuttonitem is pressed and the popver is already visible --- Classes/MGSplitViewController.m | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/Classes/MGSplitViewController.m b/Classes/MGSplitViewController.m index 61b30a6..40d8fd4 100644 --- a/Classes/MGSplitViewController.m +++ b/Classes/MGSplitViewController.m @@ -704,16 +704,21 @@ - (IBAction)toggleMasterView:(id)sender - (IBAction)showMasterPopover:(id)sender { - if (_hiddenPopoverController && !(_hiddenPopoverController.popoverVisible)) { - // Inform delegate. - if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:popoverController:willPresentViewController:)]) { - [(NSObject *)_delegate splitViewController:self - popoverController:_hiddenPopoverController - willPresentViewController:self.masterViewController]; - } - - // Show popover. - [_hiddenPopoverController presentPopoverFromBarButtonItem:_barButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; + if (_hiddenPopoverController) { + if (_hiddenPopoverController.popoverVisible) { + // Hide popover. + [_hiddenPopoverController dismissPopoverAnimated:YES]; + } else { + // Inform delegate. + if (_delegate && [_delegate respondsToSelector:@selector(splitViewController:popoverController:willPresentViewController:)]) { + [(NSObject *)_delegate splitViewController:self + popoverController:_hiddenPopoverController + willPresentViewController:self.masterViewController]; + } + + // Show popover. + [_hiddenPopoverController presentPopoverFromBarButtonItem:_barButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; + } } }