Sono quasi disperato mentre cerco una soluzione da settimane.iPhone ABPeoplePickerNavigationController - Come selezionare due voci singole di due diverse proprietà multivalore di una persona dalla rubrica
Il problema è semplice:
- Via del ABPeoplePickerNavigationController (come ModalView), una persona dovrebbe essere selezionato.
- Quindi, solo (ad es.) Gli indirizzi di posta dovrebbero essere mostrati e l'utente dovrebbe selezionarne uno.
- Dopo aver selezionato un indirizzo di posta elettronica, devono essere visualizzati solo i numeri di telefono (ad esempio) e l'utente deve selezionarne uno.
La soluzione fino a quando il terzo aspetto è ben noto:
- (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;
}
L'approccio giusto sembra spingere un simile Peoplepicker Visualizza sulla navigationController del ModalView, ma io non so come.
Se qualcuno avesse qualche idea sarebbe bello!
Se si desidera vedere un simile comportamento in azione, è possibile dare un'occhiata all'app Amazon: se si eseguono i primi passaggi di un ordine, è possibile selezionare un indirizzo di spedizione in questo modo: Da Elenco contatti -> Seleziona una persona -> seleziona un indirizzo -> seleziona un numero di telefono. Lì, tutto (sembra) ha luogo nella vista modale con solo una gerarchia di navigazione con un livello in più rispetto al codice standard mostrato sopra.
Mi dispiace, ma non ho ancora risposto! Il tuo commento mi ha guidato alla soluzione che era quasi esattamente come quella di zonble. Grazie mille!! –