iOS10 获取系统通讯录新方法
#import <ContactsUI/ContactsUI.h>
遵循代理
CNContactPickerDelegate
调用通讯录
如果在iOS10的机器上调用以前的ABPeoplePickerNavigationController老方法将直接崩溃.
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//iOS 10
// AB_DEPRECATED("Use CNContactPickerViewController from ContactsUI.framework instead")
CNContactPickerViewController * contactVc = [CNContactPickerViewController new];
contactVc.delegate = self;
[self presentViewController:contactVc animated:YES completion:^{
}];
}
选择完成代理回调
-(void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact{
NSLog(@"name:%@%@",contact.familyName,contact.givenName);
CNLabeledValue * labValue = [contact.phoneNumbers lastObject];
NSLog(@"phone:%@",[labValue.value stringValue]);
}
取消选择回调
- (void)contactPickerDidCancel:(CNContactPickerViewController *)picker{
[picker dismissViewControllerAnimated:YES completion:nil];
}

浙公网安备 33010602011771号