ABPeoplePickerNavigationController
Hello <br />
J'aimerai importer des personnes du répertoire interne de l'iphone à mon application.
En suivant la doc ici j'utilise donc ABPeoplePickerNavigationController que j'affiche comme inscrit dans la doc en modal :
sans oublier le delegate :
Alors la modal s'affiche sans problème par contre il ne semble pas que mes fonctions du delegate ne s'execute. J'avoue ne pas trop savoir comme cela fonctionne.
Dans mon .m et .h j'ai implémenté les fonctions delegate et il ne semble pas que ce soit suffisant.
Par exemple :
Qui est sensé etre appellé quand on fait Annuler sur la modale et qui donc supprime ma vue n'est jamais appellé. (testé simplement avec NSLog)
Donc question, comment s'implemente ce genre de fonctions qui viennent d'un delegate ? :why?:
J'aimerai importer des personnes du répertoire interne de l'iphone à mon application.
En suivant la doc ici j'utilise donc ABPeoplePickerNavigationController que j'affiche comme inscrit dans la doc en modal :
<br />ABPeoplePickerNavigationController *vCtrl = [[ABPeoplePickerNavigationController alloc] init];<br /> [self.navigationController presentModalViewController:vCtrl animated:YES];<br /> [vCtrl release];<br />
sans oublier le delegate :
<br />@interface AddContactView : UITableViewController <ABPeoplePickerNavigationControllerDelegate><br />
Alors la modal s'affiche sans problème par contre il ne semble pas que mes fonctions du delegate ne s'execute. J'avoue ne pas trop savoir comme cela fonctionne.
Dans mon .m et .h j'ai implémenté les fonctions delegate et il ne semble pas que ce soit suffisant.
Par exemple :
<br />- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {<br /><br /> [self.navigationController dismissModalViewControllerAnimated:YES];<br /> <br />}<br />
Qui est sensé etre appellé quand on fait Annuler sur la modale et qui donc supprime ma vue n'est jamais appellé. (testé simplement avec NSLog)
Donc question, comment s'implemente ce genre de fonctions qui viennent d'un delegate ? :why?:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
juste après le alloc +init de ton "vCtrl", tu rajoutes [vCtrl setDelegate:self];
J'ai essayé au cas ou :
en vain.
Il faut que j'ajoute un deuxieme delegate ? est-ce possible ?
Et bien sûr implémenter les méthodes (au moins les requises, celles non marquées comme optionnelles) de ce protocole.
Pour plus d'infos :
- La doc sur le principe des protocoles en Objective-C (en particulier la section adopting a protocol)
Tu as aussi de la doc sur les design patterns "delegate" dans la doc Apple
Par contre j'ai jamais utilisé donc je sais pas pourquoi il te demande "UINavigationControllerDelegate" avec "ABPeoplePickerNavigationControllerDelegate"
J'ai continué de chercher dans la direction que vous m'aviez donné car le setDelegate n'était apperemment pas suffisant et voici la réponse :
et avec ça les méthodes delegate sont bien appellée.