AddressBookUI.framework管理通讯录

2016-07-20  本文已影响53人  nalis风

//创建一个新的联系人

- (IBAction)addBK:(id)sender {

ABNewPersonViewController* controller=[[ABNewPersonViewControlleralloc]init];

controller.newPersonViewDelegate=self;

UINavigationController* nav=[[UINavigationControlleralloc]initWithRootViewController:controller];

[selfpresentViewController:navanimated:YEScompletion:nil];

}

- (IBAction)selectBK:(id)sender {

//用于让用于选择某个联系人或选择某个联系人信息项

ABPeoplePickerNavigationController* controller=[[ABPeoplePickerNavigationControlleralloc]init];

controller.peoplePickerDelegate=self;

[selfpresentViewController:controlleranimated:YEScompletion:NULL];

}

- (IBAction)selectBKByID:(id)sender {

ABAddressBookRefab=ABAddressBookCreateWithOptions(NULL,NULL);

//获取ID为1的联系人纪录

ABRecordRefrec=ABAddressBookGetPersonWithRecordID(ab,1);

ABPersonViewController* controller=[[ABPersonViewControlleralloc]init];

controller.allowsActions=YES;

controller.allowsEditing=YES;

controller.personViewDelegate=self;

controller.displayedPerson=rec;

UINavigationController* nav=[[UINavigationControlleralloc]initWithRootViewController:controller];

[selfpresentViewController:navanimated:YEScompletion:nil];

}

//未知联系人

- (IBAction)otherBK:(id)sender {

ABUnknownPersonViewController* controller=[[ABUnknownPersonViewControlleralloc]init];

controller.unknownPersonViewDelegate=self;

//设置显示标准动作

controller.allowsActions=YES;

//设置允许将该位置的联系人添加到地址簿

controller.allowsAddingToAddressBook=YES;

//创建依靠新的纪录

ABRecordRefrecord=ABPersonCreate();

ABRecordSetValue(record,kABPersonFirstNameProperty,(__bridgeCFTypeRef)@"阿芙罗狄忒",NULL);

ABRecordSetValue(record,kABPersonLastNameProperty, (__bridgeCFTypeRef)@"众神",NULL);

ABMutableMultiValueRefmulti=ABMultiValueCreateMutable(kABPersonPhoneProperty);

ABMultiValueAddValueAndLabel(multi, (__bridgeCFTypeRef)@"美之神",(__bridgeCFTypeRef)@"工作",NULL);

controller.displayedPerson=record;

UINavigationController* nav=[[UINavigationControlleralloc]initWithRootViewController:controller];

[selfpresentViewController:navanimated:YEScompletion:NULL];

}

//----- ABNewPersonViewControllerDelegate

-(void)newPersonViewController:(ABNewPersonViewController*)newPersonView didCompleteWithNewPerson:(ABRecordRef)person

{

if(person) {

NSString* firstName=(__bridgeNSString*)(ABRecordCopyValue(person,kABPersonFirstNameProperty));

[selfshowAlert:[NSStringstringWithFormat:@"[%@]联系人被保存",firstName]];

}

[newPersonView.navigationControllerdismissViewControllerAnimated:YEScompletion:nil];

}

//-----ABUnknownPersonViewControllerDelegate

-(void)unknownPersonViewController:(ABUnknownPersonViewController*)unknownCardViewController didResolveToPerson:(ABRecordRef)person{

if(person) {

NSString* firstName=(__bridgeNSString* )ABRecordCopyValue(person,kABPersonFirstNameProperty);

[selfshowAlert:[NSStringstringWithFormat:@"[%@]联系人被保存",firstName]];

}

[unknownCardViewController.navigationControllerdismissViewControllerAnimated:YEScompletion:nil];

}

//--ABPeoplePickerNavigationControllerDelegate

-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{

[peoplePickerdismissViewControllerAnimated:YEScompletion:^{

NSString* firstName=(__bridgeNSString*)ABRecordCopyValue(person,kABPersonFirstNameProperty);

[selfshowAlert:[NSStringstringWithFormat:@"您选中了[%@]联系人",firstName]];

}];

returnNO;

}

//-----------ABPersonViewControllerDelegate

-(BOOL)personViewController:(ABPersonViewController*)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{

//    [self showAlert:[NSString stringWithFormat:@"名字为:%@",ab]];

[personViewController.navigationControllerdismissViewControllerAnimated:YEScompletion:NULL];

returnYES;

}

-(void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController*)peoplePicker{

NSLog(@"用户取消了选择");

}

-(void)showAlert:(NSString*)str{

UIAlertController* alert=[UIAlertControlleralertControllerWithTitle:@"提示"message:strpreferredStyle:UIAlertControllerStyleAlert];

UIAlertAction* action=[UIAlertActionactionWithTitle:@"确定"style:UIAlertActionStyleDefaulthandler:nil];

[alertaddAction:action];

[selfpresentViewController:alertanimated:YEScompletion:nil];

}

上一篇下一篇

猜你喜欢

热点阅读