AddressBookUI.Framwork应用之ABPersonViewController, ABUnknownPersonViewController,ABNewPersonViewContro
2014-12-03 17:07
387 查看
设置委托 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);
}
}
//显示和编辑一个联系人信息
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
- AddressBookUI.Framwork应用之ABPeoplePickerNavigationController
- iOS手机联系人相关AddressBookUI.Framwork和AddressBook.Framework
- 【转】iPhone通讯录AddressBook.framework和AddressBookUI.framework的应用
- [iPhone]如何在Tab Bar Controller里面使用ABPersonViewController?
- iphone通讯录AddressBook.framework和AddressBookUI.framework的应用
- ABAddressBook & AddressBook UI 文件介绍(IOS开发)
- iphone通讯录AddressBook.framework和AddressBookUI.framework的应用
- iphone通讯录AddressBook.framework和AddressBookUI.framework的应用
- ABPersonViewController不显示除了名称的属性
- 手机联系人相关AddressBookUI.Framwork和AddressBook.Framework
- 不同iOS系统版本下ABPeoplePickerNavigationController和ABAddressBook访问系统通讯录的区别
- IOS 开发-UI初级 (二 · 后续)View,ViewController实践和应用
- ABPersonViewController+Delete
- AddressBook.Framework应用之ABAddressBookRef,ABRecordRef,ABMutableMultiValueRef,ABMultiValueRef
- ipa 开发常用控件 : UISplitViewController , UIPopoverController
- UIPickerView在UIPopoverController中正确显示方法
- ABAddressBook & AddressBook UI 文件介绍(IOS开发)
- UIPickerView在UIPopoverController中正确显示方法
- iPad 用xib如何创建UISplitViewController应用程序