我有一个子类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];
}