首先需要导入头文件
#import <ContactsUI/ContactsUI.h>
弹出通讯录控制器
CNContactPickerViewController *contactVC = [[CNContactPickerViewController alloc] init];
contactVC.delegate = self;// 设置代理:CNContactPickerDelegate
[[self currentController] presentViewController:contactVC animated:YES completion:nil];
实现代理CNContactPickerDelegate方法,可获得选中的联系人电话和姓名,再做后续操作。
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty
{
if ([contactProperty.value isKindOfClass:[CNPhoneNumber class]]) {
// 获取选中电话对应的联系人名字:在givenName、familyName、organizationName中,哪个不为空选哪个。
NSString *contactName = @"";
if ([HELPER isZeroLengthWithString:contactProperty.contact.givenName] == NO) {
contactName = contactProperty.contact.givenName;
}else if ([HELPER isZeroLengthWithString:contactProperty.contact.familyName] == NO) {
contactName = contactProperty.contact.familyName;
}else if ([HELPER isZeroLengthWithString:contactProperty.contact.organizationName] == NO) {
contactName = contactProperty.contact.organizationName;
}
// [contactProperty.value stringValue] 为选中的联系电话
if (self.didSelectContactBlock) {
self.didSelectContactBlock([contactProperty.value stringValue], contactName);
}
}
}
效果图: