Rejetant UIPopoverController avec -dismissPopoverAnimated: ne dirais pas de délégué?
J'ai mon UIPopoverController avec soi en tant que délégué:
Je reçois des appels quand je me tape à l'extérieur de la liste de contrôle, mais quand j'appuie sur l'intérieur je veux rejeter trop, donc j'utilise -dismissPopoverAnimated: mais délégué n'est pas appelée dans ce cas.
Est-ce normal? Est-ce un bug ou je fais quelque chose de mal?
newDocPopoverController = [[UIPopoverController alloc] initWithContentViewController:vc];
[newDocPopoverController setPopoverContentSize:CGSizeMake(240, 44*4)];
[newDocPopoverController presentPopoverFromBarButtonItem:sender
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
[newDocPopoverController setDelegate:self];
Mise à JOUR:
Oh, quelle que soit l'origine du problème (savoir Si c'est un bug ou c'est le comportement voulu) en appelant le délégué par moi-même de résoudre le problème 🙂
Lorsque le contentViewController de vue est touché, je vais appeler le parent UIPopoverController est délégué à un appel.
if ([parentPopoverController.delegate popoverControllerShouldDismissPopover:parentPopoverController]){
[parentPopoverController dismissPopoverAnimated:YES];
[parentPopoverController.delegate popoverControllerDidDismissPopover:parentPopoverController];
}r];
Je viens de tomber sur le même "problème", merci de remarquer comment le résoudre; ie. rejeter la popovercontroller puis appeler la méthode du délégué.
OriginalL'auteur nacho4d | 2010-08-25
Vous devez vous connecter pour publier un commentaire.
C'est normal, le comportement attendu.
Citant le Apple docs sur
popoverControllerDidDismissPopover:
:OriginalL'auteur Douwe Maan
Par programmation la popoverControllerDidDismissPopover n'est pas appelé et ne sera pas rejetée, vous devrez appeler le délégué de vous-même:
Où PopUp est le parent
UIPopoverController
Espère que cette aide
Cheers
Al
OriginalL'auteur Al Pascual
définir le délégué du premier;
yourPopup.delegate=self;
puis d'autres où dans votre code (Peut-être, en Particulier, l'appel de la Méthode en raison de certains événements).
utilisez le code suivant;
[self.yourPopUp dismissPopoverAnimated:YES];
OriginalL'auteur Chandramani