ABPeoplePickerNavigationController *ppnc=[[ABPeoplePickerNavigationController alloc]init];
ppnc.peoplePickerDelegate=self;
[self presentViewController:ppnc animated:YES completion:nil];
在.h文件里加入ABPeoplePickerNavigationControllerDelegate代理协议;
之后在.m文件里写入
//当用户选择取消时调用这个方法,可以在这个方法里面取消整个通讯录页面的显示
-(void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker{
[self dismissViewControllerAnimated:YES completion:nil];
}
#pragma mark-
#pragma phonenumber
//当用户选择了通讯录中某一个联系人时调用这个方法,可以在这里获取联系人的信息。如果希望可以继续显示这个联系人更具体的信息,则return YES。否则取消整个通讯录页面的显示并return NO
-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{
NSMutableString *number;
NSMutableArray *temparray = [[NSMutableArray alloc] initWithCapacity:1];
ABMultiValueRef phone = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSUInteger num = [(__bridge NSMutableArray *)ABMultiValueCopyArrayOfAllValues(phone) count];
if (num >0) {
for (int i = 0; i
number = (__bridge NSMutableString *)ABMultiValueCopyValueAtIndex(phone, i);
NSString *number1;
number1=[number stringByReplacingOccurrencesOfString:@"-" withString:@""];//用空格替换斜杠
NSLog(@"number1=%@",number1);
[temparray addObject:number1];
}
}
self.addressBookTemp = temparray;
return YES;
}
//如果希望可以对选择的某一项纪录进行进一步操作,比如直接拨打电话或调用邮箱发送邮件,则return YES。否则取消整个通讯录页面的显示并return NO。
-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{
for (int i=0; i<[addressBookTemp count]; i++) {
self.textFieldYourPhoneNumber.text=[addressBookTemp objectAtIndex:i];
}
[self dismissViewControllerAnimated:YES completion:nil];
return NO;
}