J'ai une vue pop over. Quand ce popover est rejeté, je veux être averti.Popover view notification
Y a-t-il un moyen de le faire?
S'il vous plaît aidez-moi.
J'ai une vue pop over. Quand ce popover est rejeté, je veux être averti.Popover view notification
Y a-t-il un moyen de le faire?
S'il vous plaît aidez-moi.
La réponse est incroyablement simple!
La routine de délégué popoverControllerDidDismissPopover est appelée pour vous chaque fois que le popover est fermé.
Donc, il suffit d'ajouter ce code à votre code ...
-(void)popoverControllerDidDismissPopover:
(UIPopoverController *)popoverController
{
NSLog(@"a popover was dismissed! thank you stackoverflow!");
}
OK? Vous pouvez également utiliser popoverControllerShouldDismissPopover si vous voulez réellement l'empêcher d'être rejeté.
(Remarque - Dans le cas inhabituel où vous travaillez avec plus d'un popover, vérifiez dans cette routine quel est celui qui est rejeté, par exemple si (popoverController == myPostcodePopover) {}, ou autre.
Si vous ne savez pas comment faire quelque chose, la solution est presque toujours dans les délégués disponibles avec la classe avec laquelle vous travaillez.
----------- ne pas oublier de le faire!
Chaque fois que vous utilisez un délégué, bien sûr, vous devez définir le délégué à être « vous »,
zipcodeEntryPopover.delegate = self;
----------- ne pas oublier de le faire!
Si vous allez utiliser un délégué comme celui-ci, vous avez juste besoin de l'ajouter à vos déclarations de délégué où vous déclarez la classe dans votre fichier .h.
Ainsi, dans votre fichier .h que vous aurez quelque chose comme ça,
@interface yourHappyThing : UIViewController <ASIHTTPRequestDelegate,
UIAccelerometerDelegate,
thisDelegate,
thatDelegate>
(Souvent, vous avez un grand nombre d'entre eux là-bas, les deux délégués du système et de votre propre que vous avez créé.) Donc, , il vous suffit d'ajouter l'un pour le délégué popover, donc ...
@interface yourHappyThing : UIViewController <ASIHTTPRequestDelegate,
UIAccelerometerDelegate,
thisDelegate,
thatDelegate,
UIPopoverControllerDelegate>
cela devrait le faire! Si cela ne fonctionne pas, je suis toujours heureux d'aider une fille barbie alors s'il vous plaît demander quelque chose plus loin!
utiliser cette méthode déléguée
-(void)popoverControllerDidDismissPopover:
(UIPopoverController *)popoverController
{
}
Comme les autres ont dit, utiliser -(void)popoverControllerDidDismissPopover: (UIPopoverController *)popoverController
Mais ils ont tous manqué un point critique; ne pas oublier de changer le délégué du UIPopoverController lors de sa création:
UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:datePicker];
popoverController.delegate = self;
J'ai raté cette ligne comme vous l'avez mentionné "popoverController.delegate = self;" ... merci – user198725878
Salut vous thnk pour le reply..when i collé ci-dessus code..it doesnot s'appelle ... suis-je manque quelque chose – user198725878
Salut .. merci beaucoup pour votre aide ... – user198725878
+1 pour * Note - dans le cas inhabituel, vous travaillez avec plus d'un popover *, c'est vraiment difficile à déboguer en particulier lorsque vous sous-classez vos propres contrôleurs dans 3 niveaux et décidez d'ajouter quelques popovers à un stade ultérieur ... – mvds