Display ABPeoplePickerNavigationController usando storyboard segue
Tengo un nuevo proyecto donde quiero mostrar un selector de personas, cuando se toca un botón.
Así que tengo unaUIButton
que sigue a una @ genériUIViewController
con el identificadorshowContacts
. Establecí la clase de este ViewController enABPeoplePickerNavigationController
.
Ahora en mi ViewController raíz tengo este código para inicializar mi selector:
#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]];
}
}
Aunque agregué contactos de prueba a mi libreta de direcciones del simulador, los resultados se ven así:
no selector http://i.minus.com/jbwUQyLr36ChHo.pn
Con el siguiente código, que es muy similar a lo que hago en elprepareForSegue:
método, me las arreglo para mostrar un selector a través de unIBAction
:
- (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];
}
El resultado
picker http://i.minus.com/jeEVeIBmfIYdR.pn
o me queda claro por qué el selector de personas no aparece.