AddressBookUI.Framwork应用之ABPersonViewController, ABUnknownPersonViewController,ABNewPersonViewContro
設置委托 ABPersonViewControllerDelegate,personVc.personViewDelegate=self;
//顯示和編輯一個聯系人信息
? ??ABPersonViewController?*personVc=[[ABPersonViewControlleralloc]init];
? ??//把聯系人信息作為導航欄的根視圖,才可以顯示編輯按鈕和?完成按鈕,返回按鈕
? ??UINavigationController?*nav=[[UINavigationControlleralloc]initWithRootViewController:personVc];
? ??ABRecordRef?person=ABPersonCreate();
? ??//CFString=CFSTR("")類似NSString =@"";直接賦值
? ??ABRecordSetValue(person,?kABPersonFirstNameProperty,?CFSTR("jun"),?NULL);
? ??ABRecordSetValue(person,?kABPersonLastNameProperty,?CFSTR("ye"),?NULL);
? ? personVc.personViewDelegate=self;
? ? personVc.displayedPerson=person;
? ??CFRelease(person);
? ? personVc.allowsEditing=YES;
委托方法:
-(BOOL)personViewController:(ABPersonViewController?*)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
{
? ??return?NO?;//不為默認操作
}
//添加新聯系人到通訊錄,一般用于通訊錄外面的應用,比如說點擊某個按鈕,直接進入聯系人編輯,然后添加到通訊錄
ABUnknownPersonViewController?*unknown=[[ABUnknownPersonViewController?alloc]init];
? ? unknown.displayedPerson=person;
? ? unknown.allowsAddingToAddressBook=YES;//允許添加
?//委托方法
-(BOOL)unknownPersonViewController:(ABUnknownPersonViewController*)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
{
? ??return?NO;
}
//新建聯系人,允許用戶填入一個新聯系人的所有屬性,一般是通訊錄里面的新建
? ??ABNewPersonViewController?*new=[[ABNewPersonViewControlleralloc]init];
? ? new.newPersonViewDelegate=self;
//委托方法
-(void)newPersonViewController:(ABNewPersonViewController*)newPersonView didCompleteWithNewPerson:(ABRecordRef)person
{
? ??//用于編輯新聯系人后做的事件,比如說模態退出,比如說不保存聯系人到通訊錄
? ??if?(person!=NULL) {
? ? ? ??ABAddressBookRef?adbk=ABAddressBookCreate();
? ? ? ??//從數據庫中刪除新加的聯系人
? ? ? ??ABAddressBookRemoveRecord(adbk, person,?NULL);
? ? ? ??CFStringRef?name=ABRecordCopyCompositeName(person);
? ? ? ??NSLog(@"name%@",name);//對新加的聯系人做處理,不一定要保存到通訊錄數據庫
? ? ? ??CFRelease(name);
? ? ? ??CFRelease(adbk);
?? ? ? ?
? ? }
}
總結
以上是生活随笔為你收集整理的AddressBookUI.Framwork应用之ABPersonViewController, ABUnknownPersonViewController,ABNewPersonViewContro的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用iOS AddressBook
- 下一篇: 浅析ios开发中Block块语法的妙用