ios通讯录------AddressBookUI
2016-08-23 19:49
465 查看
直接上代码
#import "ViewController.h" #import <AddressBookUI/AddressBookUI.h> @interface ViewController ()<ABPeoplePickerNavigationControllerDelegate> @end @implementation ViewController - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { ABPeoplePickerNavigationController *vc = [[ABPeoplePickerNavigationController alloc] init]; #warning 注意, 通讯录控制器的代理不是delegate, 而是peoplePickerDelegate vc.peoplePickerDelegate = self; [self presentViewController:vc animated:YES completion:nil]; } // 在iOS7时 点击cancle按钮时候就会调用 - (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker { NSLog(@"%s", __func__); // 关闭通讯录 [peoplePicker dismissViewControllerAnimated:YES completion:nil]; } // 在iOS7时 , 选中某一个联系人就会调用 // 返回一个BOOL值, 如果返回NO, 代表不会进入下一层(详情), 如果返回YES,代表会进入下一层 - (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person { NSLog(@"%s", __func__); /* //取出当前联系人的的电话信息 // 获取练习人得姓名 CFStringRef lastName = ABRecordCopyValue(person, kABPersonLastNameProperty); CFStringRef firstName = ABRecordCopyValue(person, kABPersonFirstNameProperty); NSLog(@"%@ %@", firstName, lastName); // 获取联系人的电话 // 从联系人中获取到得电话是所有的电话 ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty); // 获取当前联系人总共有多少种电话 CFIndex phoneCount = ABMultiValueGetCount(phones); for (int i = 0; i < phoneCount; i++) { CFStringRef name = ABMultiValueCopyLabelAtIndex(phones, i); // 从所有的电话中取出指定的电话 CFStringRef value = ABMultiValueCopyValueAtIndex(phones, i); NSLog(@"name = %@ value = %@", name, value); } */ return YES; } // 在iOS7时 , 选中某一个联系人的某一个属性时就会调用 // 返回一个BOOL值, 如果返回NO, 代表不会进行下一步操作(打电话, 打开日历....), 如果返回YES,代表会进行下一步操作 - (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier { NSLog(@"%s", __func__); return YES; } #pragma mark - iOS8 // 选中某一个联系人就会调用 #warning 只要实现了这个方法, 就不会进行下一步操作(进入详情), iOS8的做法是默认返回NO - (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person { NSLog(@"%s", __func__); } // 选中某一个联系人的某一个属性时就会调用 - (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier { NSLog(@"%s", __func__); } @end
相关文章推荐
- ios读取通讯录并美化 文字生成头像UI
- iOS之UI--通讯录的实例关键知识技术点积累
- IOS--UI--通讯录实战--Plist 取文件
- ios通讯录------AddressBook基本使用
- iOS编程-------AddressBook_自定义cell 自定义单元格通讯录
- iOS之UI--通讯录的实例关键知识技术点积累
- iOS 使用UILocalizedIndexedCollation实现通讯录样式的索引
- ios中获取当前手机通讯录信息一、在工程中添加AddressBook.framework和AddressBookUI.framework
- iOS - iOS 9 前获取用户通讯录列表封装(无UI)
- iOS 获取通讯录以及调用系统通讯录UI
- AddressBook、AddressBookUI、Contacts、ContactsUI 通讯录操作
- iOS开发 - 第02篇 - UI进阶 - 08 - 私人通讯录
- iOS 通讯录开发 AddressBook AddressBookUI框架的使用
- iOS开发之通讯录 AddressBook
- ios 选择联系人 发短信 通讯录开发 addressUI
- IOS_UI_UITableView 应用 通讯录(从前往后传值不编辑)
- iOS之UI--通讯录的实例关键知识技术点积累
- IOS进阶 AddressBook.framework和AddressBookUI.framework访问通讯录
- iOS编程------singleton_AddressBook 单例模式 通讯录
- iOS读取通讯录