Search code examples
iosuipopovercontrollerdismissuipopover

How to dismiss UIPopover ONLY if i press the button?


Now my popover dismissing if i press anywhere on the screen, but i need to show and hide him only if i press the button(the same button), how can i do these? Thank you.


Solution

  • Just set a delegate to your UIPopoverController and implement the following method:

    - (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController {
         return NO;
    }
    

    From the docs:

    This method is called in response to user-initiated attempts to dismiss the popover. It is not called when you dismiss the popover using the dismissPopoverAnimated: method of the popover controller.

    If you do not implement this method in your delegate, the default return value is assumed to be YES.