У меня есть новый проект, в котором я хочу отобразить People Picker, когда нажата кнопка.Дисплей ABPeoplePickerNavigationController с помощью раскадровки segue
Таким образом, у меня есть 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]];
}
}
Хотя я добавил тест контактов с моим Тренажером адресной книги результатов выглядит следующим образом:
no picker 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];
}
Результат:
picker http://i.minus.com/jeEVeIBmfIYdR.png
Это мне не ясно, почему люди сборщик не показывает.