У меня есть подкласс ABPeoplePickerNavigationController
для обработки выбора контактного номера телефона в моем приложении. Все отлично работает на iOS 7 и ниже.
Однако в iOS 8 мой ABPeoplePickerNavigationControllerDelegate
не попадает при выборе номера телефона. Вместо этого он просто звонит по этому номеру телефона.
Я заметил, что метод, который я использовал для обработки выбора контактов в iOS 7 (peoplePickerNavigationController:shouldContinueAfterSelectingPerson:property:identifier:
), устарел в iOS 8. Этот метод был заменен на peoplePickerNavigationController:didSelectPerson:property:identifier:
.
Я знаю, что мой делегат установлен, потому что я успешно получил обратный вызов метода peoplePickerNavigationControllerDidCancel:
.
Кто-нибудь еще сталкивался с этой проблемой?
Вот фрагмент кода моего подкласса ABPeoplePickerNavigationController
:
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier {
[self peoplePickerNavigationController:peoplePicker shouldContinueAfterSelectingPerson:person property:property identifier:identifier];
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier {
...do stuff...
return NO;
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
return YES;
}
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {
[self dismissViewControllerAnimated:self.shouldAnimateDismiss completion:NULL];
}
picker.delegate = self
вместоpicker.peoplePickerDelegate = self
. 04.11.2014