У меня есть новый проект, в котором я хочу отобразить средство выбора людей при нажатии кнопки.
Итак, у меня есть UIButton
, который переходит к универсальному UIViewController
с идентификатором showContacts
. Я установил класс этого ViewController на ABPeoplePickerNavigationController
.
Теперь в моем корневом ViewController у меня есть этот код для инициализации моего выбора:
#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]];
}
}
Хотя я добавил тестовые контакты в свою адресную книгу симулятора, результаты выглядят так:
без сборщика http://i.minus.com/jbwUQyLr36ChHo.png
С помощью следующего кода, который очень похож на то, что я делаю в методе prepareForSegue:
, мне удается показать сборщик через 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];
}
Результат:
сборщик http://i.minus.com/jeEVeIBmfIYdR.png
Мне не понятно, почему не отображается средство выбора людей.