为了调用系统的通讯录界面与相应功能,需要引入AddressBook.framework与AddressBookUI.framework,同时,在源文件中需要包含同文件<AddressBook/AddressBook.h>,<AddressBookUI/AddressBookUI.h>.
首先申明变量:
ABPeoplePickerNavigationController*picker;
在需要的地方调用显示选择联系人界面,同时设置ABPeoplePickerNavigationControllerDelegate委托:
if(!picker){
picker= [[ABPeoplePickerNavigationControlleralloc]init];
// place the delegate of the picker to the controll
picker.peoplePickerDelegate=self;
}
// showing the picker
[selfpresentModalViewController:pickeranimated:YES];
选择联系人界面如下图所示:
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController*)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
returnYES;
}
该方法在用户选择通讯录一级列表的某一项时被调用,通过person可以获得选中联系人的所有信息,但当选中的联系人有多个号码,而我们又希望用户可以明确的指定一个号码时(如拨打电话),返回YES允许通讯录进入联系人详情界面:
当用户点击某个字段时,会调用如下方法:
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController*)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier
{
if(property ==kABPersonPhoneProperty) {
ABMutableMultiValueRefphoneMulti =ABRecordCopyValue(person, property);
intindex =ABMultiValueGetIndexForIdentifier(phoneMulti,identifier);
NSString*phone = (NSString*)ABMultiValueCopyValueAtIndex(phoneMulti, index);
//do something
[phone release];
[peoplePickerdismissModalViewControllerAnimated:YES];
}
returnNO;
}
联系人信息中可能有很多字段,首先需要判断选择的是否为电话号码字段.当满足要求时,获取联系人信息,通过标识符获得用户选择的号码在该联系人号码列表中的索引,最后通过索引获得选中的电话号码.
最后还需要实现如下方法使得用户在点击"取消"按钮时关闭联系人选择界面:
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController*)peoplePicker
{
// assigning control back to the main controller
[pickerdismissModalViewControllerAnimated:YES];
}
分享到:
相关推荐
仿iphone通讯录源码,跟Iphone 中通讯录很像,对初学者很有帮助
超级仿iPhone通讯录效果,能够固定头部,并有动画效果。
iPhone 4通讯录同步导入教程,图文教程,全面掌握
直接调用iPhone自带的地图程序实现导航
iphone常用号码黄页,vcf文件可直接导入,包括了各大银行,快递,大平台的服务号码,并带图片,解决了iPhone没有本地化通讯录的难题
iPhone通讯录首字母检索特效是一款基于jQuery实现的仿苹果通讯录首字母检索通讯录代码。
Android手机通讯录导入iPhone教程
iphone 类似 QQ 通讯录 demo
jquery仿iPhone通讯录
类似于iPhone上面的通讯录,支持增加,删除,修改,添加头像等等
NULL 博文链接:https://lizhuang.iteye.com/blog/2062533
类似iphone通讯录的一个tableView,对初学者很有用,很容易看懂...
iphone中的基础控件UITableView,适合初学者,主要学习UITableView的常用属性设置、自定义分区标题、cell显示定义、索引列显示、索引列点击事件等。 通讯录按照首字母分区显示,右边显示索引列(A、B、C、D……X、Y...
IOS 拨打电话(三种方式)
jQuery+CSS仿iPhone 电话列表,通讯录字母查找联系人功能,按住字母,会检索出匹配首字母的联系人信息,自动滚动到所属的字母开头位置。
1. 读取手机的通讯录信息,包括用户名,手机号,头像 2. 右侧有大写字母的快速滑动栏,快速定位联系人 3. 实现联系人分组 4. 联系人的增加,删除,更改详情的实现
自己写的仿照iphone的通讯录,可以显示字母导航,会出现字母导航结果提示,其中的工具类sampinyinhandler可以实现通讯录的拼音查找(暂时没做)
经过3.1.3真机测试,模拟器不能调用摄像头. 例子代码 调用iphone摄像头拍照,并在照相窗口加上了选择框,可以移动选择框选择拍照区域.
iPhone应用程序编程指南-中文版 pdf iPhone应用程序编程指南-中文版 pdf iPhone应用程序编程指南-中文版 pdf
iphone 有关通讯录内容的操作(别人写的)