#import "ViewController.h"
#import <ContactsUI/ContactsUI.h>//导入的头文件,iOS9之前是<AddressBookUI/AddressBookUI.h>
//#import <AddressBookUI/AddressBookUI.h>
@interface ViewController ()<CNContactPickerDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
#pragma mark 点击屏幕来显示联系人界面
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
//1. 创建联系人选择控制器
CNContactPickerViewController *picker = [CNContactPickerViewControllernew];
//2. 设置代理 -->获取数据
picker.delegate =self;
//3. 模态弹出联系人选择控制器
[selfpresentViewController:pickeranimated:YEScompletion:nil];
}
//#pragma mark 选中单个联系人的时候会调用
//- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact
//{
// //获取联系人的电话和姓名
// //1. 获取姓名
// // 名
// NSLog(@"%@", contact.givenName);
// // 姓
// NSLog(@"%@", contact.familyName);
//
// //2. 获取电话
// for (CNLabeledValue *labeledValue in contact.phoneNumbers) {
// NSLog(@"label: %@", labeledValue.label);
//
// //ValueType == CNPhoneNumber
// CNPhoneNumber *phoneNumber = labeledValue.value;
//
// NSLog(@"value: %@", phoneNumber.stringValue);
// }
//
//}
//只有单独实现下面这个方法时,才会跳到通讯录个人详细页面
#pragma mark 选中单个联系人的属性的时候会调用
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty
{
self.phonenum.text=contactProperty.value[@"digits"];//手机号码
NSLog(@"单个联系人属性选择");
//输出结果 :单个联系人属性选择--<CNContactProperty: 0x170423fc0: contact identifier=4AA82249-D061-4FCD-BBE3-EF130F394639, contact name=m 俺, key=phoneNumbers, identifier=747CC6B9-9E77-48B2-8E6C-322A0B1619DE, value=<CNPhoneNumber: 0x174421680: countryCode=cn, digits=15805508133>>
}
//#pragma mark 选中多个联系人的时候回调用
//- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContacts:(NSArray<CNContact *> *)contacts
//{
// //CNContact 是联系人的类
// for (CNContact *contact in contacts) {
// //1. 获取姓名
// // 名
// NSLog(@"01-%@", contact.givenName);
// // 姓
// NSLog(@"02-%@", contact.familyName);
//
// //2. 获取电话
// for (CNLabeledValue *labeledValue in contact.phoneNumbers) {
// NSLog(@"03-label表示电话的类型(是手机还是办公电话): %@", labeledValue.label);
//
// //ValueType == CNPhoneNumber
// CNPhoneNumber *phoneNumber = labeledValue.value;
//
// NSLog(@"04-value: %@", phoneNumber.stringValue);
// }
// }
//}
//
//
//#pragma mark 选中联系人的多个属性的时候会调用
//- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperties:(NSArray<CNContactProperty *> *)contactProperties
//{
// NSLog(@"-联系人属性--%@",contactProperties);
//}
#pragma mark 取消联系人界面的时候会调用的方法
- (void)contactPickerDidCancel:(CNContactPickerViewController *)picker
{
NSLog(@"%s取消",__func__);
}
@end
===================