Jestem blisko desperacji, gdy szukam rozwiązania od wielu tygodni.iPhone ABPeoplePickerNavigationController - Jak wybrać dwa pojedyncze wpisy dwóch różnych właściwości wielowartościowych osoby z książki adresowej
Problem jest prosty:
- Przez ABPeoplePickerNavigationController (jako ModalView), osoba powinna być zaznaczona.
- Następnie należy podać (np.) Adresy pocztowe, a użytkownik powinien wybrać jeden.
- Po wybraniu adresu e-mail należy wyświetlić (np.) Numery telefonów, a użytkownik powinien wybrać jeden z nich.
Rozwiązanie aż do trzeciego aspektu jest dobrze znane:
- (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;
}
Właściwe podejście wydaje się pchnąć podobny peoplePicker Widok na NavigationController z ModalView, ale nie wiem jak.
Jeśli ktokolwiek miał pomysł, byłoby wspaniale!
Jeśli chcesz zobaczyć takie zachowanie w działaniu, możesz rzucić okiem na aplikację Amazon: Jeśli wykonasz pierwsze kroki w ramach zamówienia, możesz wybrać adres wysyłki dokładnie w ten sposób: Z listy kontaktów -> Wybierz Osoba -> Wybierz adres -> Wybierz numer telefonu. Tam wszystko (wydaje się) ma miejsce w widoku modalnym z tylko hierarchią nawigacji o jeden poziom wyżej niż w standardowym kodzie pokazanym powyżej.
Bardzo mi przykro, nie odpowiedziałem jeszcze! Twój komentarz poprowadził mnie do rozwiązania, które było niemal identyczne jak rozwiązanie zonble. Dziękuję Ci bardzo!! –