//創建一個新的聯系人
- (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];
}