#import <UIKit/UIKit.h>
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>
@interface SettingController : UIViewController<ABPersonViewControllerDelegate,ABPeoplePickerNavigationControllerDelegate,
ABNewPersonViewControllerDelegate>{
IBOutlet UIButton *btnBack;
IBOutlet UIScrollView *vPhone;
ABPeoplePickerNavigationController *picker;
ABNewPersonViewController *personViewController;
}
-(IBAction)showPicker:(id)sender;
-(IBAction)btnAddClicked:(id)sender;
-(IBAction)btnBackClicked:(id)sender;
@end
SettingController.m文件
//添加联系人
-(IBAction)btnAddClicked:(id)sender
{
personViewController = [[ABNewPersonViewController alloc] init];
personViewController.newPersonViewDelegate = self;
UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:personViewController];
[vPhone addSubview:navigation.view];
[vPhone addSubview:personViewController.view];
}
//显示通讯录
- (IBAction)showPicker:(id)sender {
picker =
[[ABPeoplePickerNavigationController alloc]init];
picker.peoplePickerDelegate = self;
//picker.navigationBar.topItem.prompt = @"选择要添加到“个人收藏”的联系人";
[picker setHidesBottomBarWhenPushed:YES];
[picker setNavigationBarHidden:YES animated:NO];
//picker.displayedProperties = [NSArray arrayWithObject:[NSNumber numberWithInt:kABPersonPhoneProperty]];
[vPhone addSubview:picker.view];
}
//用户取消选择时调用
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker
{
//[self dismissModalViewControllerAnimated:YES];
[self.view removeFromSuperview];
}
-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
NSLog(@"%@", (NSString*)ABRecordCopyCompositeName(person));
return YES;
}
-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
{
return YES;
}
-(BOOL)personViewController:(ABPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{
return YES;
}
-(void)newPersonViewController:(ABNewPersonViewController *)newPersonView didCompleteWithNewPerson:(ABRecordRef)person{
if(person)
{
CFErrorRef error=NULL;
ABAddressBookSave(newPersonView.addressBook, &error);
//[newPersonView dismissModalViewControllerAnimated:YES];
}
[self.view removeFromSuperview];
}