Ich bin fast Verzweiflung, wie ich seit Wochen eine Lösung suche.iPhone ABPeoplePickerNavigationController - So wählen Sie zwei einzelne Einträge von zwei verschiedenen mehrwertigen Eigenschaften einer Person aus Adressbuch
Das Problem ist einfach:
- über die ABPeoplePickerNavigationController (als ModalView), eine Person ausgewählt werden soll.
- Dann sollten nur (z. B.) die Mail-Adressen angezeigt werden und der Benutzer sollte einen auswählen.
- Nach Auswahl einer Mail-Adresse sollten nur die (z. B.) Telefonnummern angezeigt werden und der Benutzer sollte eine auswählen.
Die Lösung bis zum dritten Aspekte ist bekannt:
- (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;
}
Der richtige Ansatz scheint einen ähnlichen People Blick auf der Navigation der ModalView zu schieben, aber ich weiß nicht, wie.
Wenn jemand eine Idee hätte, wäre es großartig!
Wenn Sie ein solches Verhalten in Aktion sehen möchten, können Sie sich die Amazon App ansehen: Wenn Sie die ersten Schritte einer Bestellung durchlaufen, können Sie eine Lieferadresse genau so wählen: Aus Kontaktliste -> Auswählen eine Person -> Wählen Sie eine Adresse -> Wählen Sie eine Telefonnummer. Dort (anscheinend) findet alles in der modalen Ansicht mit nur einer Navigationshierarchie mit einer weiteren Ebene als in dem oben gezeigten Standardcode statt.
Es tut mir so leid, dass ich noch nicht geantwortet habe! Ihr Kommentar führte mich zu der Lösung, die fast genau wie die von Zonble war. Vielen Dank!! –