Mostra abpeoplepickernavigationcontroller usando lo storyboard segu
-
11-11-2019 - |
Domanda
Ho un nuovo progetto in cui voglio visualizzare un raccoglitore di persone, quando un pulsante viene toccato.
Quindi ho un UIButton
che segue un generico UIViewController
con l'identificatore showContacts
. Ho impostato la classe di questo ViewController ABPeoplePickerNavigationController
.
Ora nel mio tiro vietacontroller ho questo codice per inizializzare il mio picker:
#pragma mark - Segues
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"showContacts"]){
ABPeoplePickerNavigationController *ppnc = segue.destinationViewController;
ppnc.peoplePickerDelegate = self;
ppnc.addressBook = ABAddressBookCreate();
ppnc.displayedProperties = [NSArray arrayWithObject:[NSNumber numberWithInt:kABPersonPhoneProperty]];
}
}
Anche se ho aggiunto contatti di test alla mia rubrica del simulatore, i risultati sembrano questo:
Nessun picker http://i.minus.com/jbwuqylr36chho.png
Con il seguente codice, che è molto simile a quello che faccio in prepareForSegue:
metodo, riesco a mostrare un selettore tramite un IBAction
:
- (IBAction)showPicker:(id)sender {
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
NSArray *displayedItems = [NSArray arrayWithObjects:[NSNumber numberWithInt:kABPersonPhoneProperty],
[NSNumber numberWithInt:kABPersonEmailProperty],
[NSNumber numberWithInt:kABPersonBirthdayProperty], nil];
picker.displayedProperties = displayedItems;
// Show the picker
[self presentModalViewController:picker animated:YES];
}
Il risultato:
Picker http://i.minus.com/jeeveibmfiydr.png
Non mi è chiaro perché il raccoglitore di persone non mostra.
Nessuna soluzione corretta