111 AddressBookUI

来源:互联网 发布:nginx在windows配置 编辑:程序博客网 时间:2024/06/05 20:29

1.和照相相册相似是一个控制器:

ABPeoplePickerNavigationController *vc = [[ABPeoplePickerNavigationController alloc] init];#warning 注意, 通讯录控制器的代理不是delegate, 而是peoplePickerDelegatevc.peoplePickerDelegate = self;[self presentViewController:vc animated:YES completion:nil];

2.iOS7弹出选择联系人之后需要手动退出界面(iOS8自动退出):

// 在iOS7时 点击cancle按钮时候就会调用- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker{    // 关闭通讯录    [peoplePicker dismissViewControllerAnimated:YES completion:nil];}

3.iOS7通过以下两个代理方法拿到联系人数据:

//  在iOS7时 , 选中某一个联系人就会调用// 返回一个BOOL值, 如果返回NO, 代表不会进入下一层(详情), 如果返回YES,代表会进入下一层- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{    return YES;}//  在iOS7时 , 选中某一个联系人的某一个属性时就会调用// 返回一个BOOL值, 如果返回NO, 代表不会进行下一步操作(打电话, 打开日历....), 如果返回YES,代表会进行下一步操作- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{       return YES;}

4.iOS8通过以下代理方法拿到联系人数据:

//  选中某一个联系人就会调用#warning 只要实现了这个方法, 就不会进行下一步操作(进入详情), iOS8的做法是默认返回NO- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person{}// 选中某一个联系人的某一个属性时就会调用- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{}
0 0