Arrêtez UIPopover de rejeter automatiquement

Je me demandais s'il y avait un moyen d'empêcher un popover iPad de rejeter automatiquement chaque fois que vous touchez l'écran en dehors de la popover? Si non, y a-t-il une sorte de méthode similaire à "popoverDidDismiss" que je pourrais appeler pour savoir quand le popover a été renvoyé?

Oui, vous pouvez. Ceci est tout à fait hors de la documentation Apple.

Lorsqu'un popover est ignoré en raison d'un appui de l'user en dehors de la vue popover, le popover notifie automatiquement son délégué de l'action. Si vous fournissez un délégué, vous pouvez utiliser cet object pour empêcher le renvoi du popover ou effectuer des actions supplémentaires en réponse au renvoi. La méthode popoverControllerShouldDismissPopover: delegate vous permet de contrôler si le popover doit être effectivement ignoré. Si votre délégué n'implémente pas la méthode, ou si votre implémentation renvoie YES, le controller supprime le popover et envoie un message popoverControllerDidDismissPopover: au délégué.

Il suffit de renvoyer NO à la méthode déléguée popoverControllerShouldDismissPopover:

Voici un lien pour plus de lecture.

Guide de Popover

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

Cela le fait pour vous et vous pouvez assigner un élément de button de barre spécifique ou quelque chose d'autre dans votre popover pour rejeter le popover.

même vous pouvez utiliser

self.modallnpopover = yes;

si vous voulez le rejeter dans une vue particulière

self.modallnpopover = no;

si vous ne voulez pas le rejeter