Je suis désespéré près que je cherche une solution depuis plusieurs semaines maintenant.iPhone ABPeoplePickerNavigationController - Comment sélectionner deux entrées uniques de deux propriétés différentes d'une valeur multiple personne Addressbook
Le problème est simple:
- Via le ABPeoplePickerNavigationController (comme ModalView), une personne doit être sélectionnée.
- Ensuite, seulement (par exemple) les adresses de messagerie doivent être affichées et l'utilisateur doit en sélectionner une.
- Après sélection d'une adresse de courrier que les numéros de téléphone (par exemple) doivent être affichés et l'utilisateur doit sélectionner un.
La solution jusqu'à ce que le troisième aspect est bien connu:
- (IBAction)importFromAddressBook
{
ABPeoplePickerNavigationController* picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];
[picker release];
}
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker
{
[self dismissModalViewControllerAnimated:YES];
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
[peoplePicker setDisplayedProperties:[NSArray arrayWithObject:[NSNumber numberWithInt:kABPersonEmailProperty]]];
return YES;
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier
{
//===PROBLEM=== Now I do have a mail address and I want to have a phone number right afterwards.
//Something like this would be straightforward, but the view does not change this way:
[peoplePicker setDisplayedProperties:[NSArray arrayWithObject:[NSNumber numberWithInt:kABPersonPhoneProperty]]];
//Here misses the important code.
//And only when I also got a phone number through this or a similar method I want to call:
[peoplePicker dismissModalViewControllerAnimated:YES];
//I do not want to start default behaviour with the mailaddress and/or phone number:
return NO;
}
La bonne approche semble pousser Voir Peoplepicker similaire sur le NavigationController du ModalView, mais je ne sais pas comment.
Si quelqu'un avait une idée que ce serait génial! Si vous voulez voir un tel comportement en action, vous pouvez jeter un oeil à l'application Amazon: Si vous passez par les premières étapes d'une commande, vous pouvez sélectionner une adresse de livraison exactement de la façon suivante: Dans la liste de contacts -> Sélectionner une personne -> Sélectionnez une adresse -> Sélectionnez un numéro de téléphone. Là, tout (semble se) avoir lieu dans la vue modale avec juste une hiérarchie de navigation avec un niveau de plus que dans le code standard montré ci-dessus.
Je suis tellement désolé de ne pas avoir encore répondu! Votre commentaire m'a guidé à la solution qui était presque exactement comme celle de zonble. Merci beaucoup!! –