AddressBookUI.framework管理通訊錄

//創建一個新的聯系人

- (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];

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容