通讯录 - (ContactsUI、Contacts)

AddressBookUI.framework

提供了联系人列表界面、联系人详情界面、添加联系人界面等
一般用于选择联系人

AddressBook.framework

纯C语言的API,仅仅是获得联系人数据
没有提供UI界面展示,需要自己搭建联系人展示界面

AddressBookUI.framework与AddressBook.framework在iOS 9下已经过期
iOS 9推出访问通讯录的框架:ContactsUI和Contacts

ContactUI是带视图界面的,Contact不带视图
在iOS 中带视图的API一般使用步骤都是:-->实例化对象--> Modal展示
了解了带视图的ContactsUI的使用,也就掌握了Contacts的使用

ContactUI的使用也时分简单
1.导入头文件ContactsUI/ContactsUI.h
2.实例化对象
需要注意,使用的类是CNContactPickerViewController
3.Modal展示

CNContactPickerDelegate代理方法:
@protocol CNContactPickerDelegate 
@optional

// 点击"取消"按钮时调用
- (void)contactPickerDidCancel:(CNContactPickerViewController *)picker;

// 单选代理  已经选择某个联系人后调用
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact;

// 单选代理 已经选择某个人联系人的属性后调用
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty;

// 多选代理 已经选择某个联系人后调用 实现该方法后,不会进入联系人的详情界面(属性的代理方法也就不会调用)
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContacts:(NSArray *)contacts;

// 多选代理 已经选择某个联系人后调用
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperties:(NSArray *)contactProperties;
@end

注意:
1.实现didSelectContact代理方法后,就不会再进入联系人的详情界面,也就不会再执行didSelectContactProperty方法, 多选代理方法同理
2.单选代理方法与多选代理方法同时实现,单选代理方法将被忽略

你可能感兴趣的:(通讯录 - (ContactsUI、Contacts))