Настройка панели навигации ABPeoplePickerNavigationController в iOS 8
Я пытаюсь настроить панель навигации ABPeoplePickerNavigationController
, добавив пользовательский UIBarButtonItem
как левый и правый barbuttonitem контроллера верхнего уровня UINavigationController
. Эта функция отлично работала в iOS7 и предыдущих версиях, но не в iOS 8.
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
navigationController.topViewController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addNewContact:)];
navigationController.topViewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancel:)];
}
Вышеприведенный код выполняется, но он не действует. В PeoplePickerNavigationController отображается панель навигации по умолчанию, с ее группами по умолчанию "Группы" и "Отмена".
Что изменилось в iOS 8? Нужно ли переустанавливать, что я уже сделал?
Изменить:
Я зарегистрировал верхний ViewController в стеке навигации. Он называется CNContactPicker
.
Ответы
Ответ 1
Я сделаю снимок:
В ios 8 я считаю, что Apple каким-то образом превратила это в расширение. Это означает, что код - это приложение "Контакты". Вероятно, он работает в другом контексте.
Я думаю, это потому, что я читал, что вам больше не нужно запрашивать у пользователя доступ к списку контактов, чтобы использовать эти сборщики. Это должно означать, что они не являются частью вашего собственного приложения, то есть расширения.
Возможно, есть способ предотвратить это. Моя ставка заключается в том, что вам нужно будет передать ABAddressBook в сборщик, чтобы сделать это.