iPhone程序调用系统通讯录选择单个电话号码
2013-01-04 21:36
302 查看
为了调用系统的通讯录界面与相应功能,需要引入AddressBook.framework与AddressBookUI.framework,
同时,在源文件中需要包含同文件,.
首先申明变量:
在需要的地方调用显示选择联系人界面,同时设置ABPeoplePickerNavigationControllerDelegate委托:
当用户点击某个字段时,会调用如下方法。联系人信息中可能有很多字段,首先需要判断选择的是否为电话号码字段.当满足要求时,获取联系人信息,通过标识符获得用户选择的号码在该联系人号码列表中的索引,最后通过索引获得选中的电话号码。
最后还需要实现如下方法使得用户在点击"取消"按钮时关闭联系人选择界面:
同时,在源文件中需要包含同文件,.
#import<AddressBook/AddressBook.h> #import<AddressBookUI/AddressBookUI.h>
首先申明变量:
ABPeoplePickerNavigationController *picker;
在需要的地方调用显示选择联系人界面,同时设置ABPeoplePickerNavigationControllerDelegate委托:
picker = [[ABPeoplePickerNavigationController alloc] init]; picker.peoplePickerDelegate = self; [self presentModalViewController:picker animated:YES];// showing the picker下面的方法在用户选择通讯录一级列表的某一项时被调用,通过person可以获得选中联系人的所有信息,但当选中的联系人有多个号码,而我们又希望用户可以明确的指定一个号码时(如拨打电话),返回YES允许通讯录进入联系人详情界面
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person { NSLog(@"用户选择了通讯录一级列表的某一项"); return YES; }
当用户点击某个字段时,会调用如下方法。联系人信息中可能有很多字段,首先需要判断选择的是否为电话号码字段.当满足要求时,获取联系人信息,通过标识符获得用户选择的号码在该联系人号码列表中的索引,最后通过索引获得选中的电话号码。
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier { if (property == kABPersonPhoneProperty) { ABMutableMultiValueRef phoneMulti = ABRecordCopyValue(person, property); int index = ABMultiValueGetIndexForIdentifier(phoneMulti,identifier); NSString *phone = (NSString*)ABMultiValueCopyValueAtIndex(phoneMulti, index); //do something [phone release]; [peoplePicker dismissModalViewControllerAnimated:YES]; } return NO; }
最后还需要实现如下方法使得用户在点击"取消"按钮时关闭联系人选择界面:
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker { [peoplePicker dismissModalViewControllerAnimated:YES]; NSLog(@"回到主页面"); }
相关文章推荐
- iPhone程序调用系统通讯录选择单个电话号码
- 在iPhone中直接调用系统自带的地图程序实现导航
- 选择哪个mac系统来开发iphone程序
- iOS调用系统通讯录获取姓名电话号码(转)
- iOS开发调用系统通讯录获取电话号码
- iOS 调用系统通讯录获取姓名电话号码
- iOS调用系统通讯录获取姓名电话号码
- android调用系统通讯录程序,获取联系人信息
- iphone 调用系统通讯录添加联系人
- 直接拨号、将电话号码传入拨号程序、调用拨号程序、调用系统浏览器浏览网页、调用系统程序查看联系人、显示系统设置界面和显示Wi-Fi设置界面代码
- iphone 程序 调用系统程序
- android调用系统自带的文件管理程序选择文件
- WIN32,,打开文件没有默认程序,调用系统的默认程序选择窗口
- [VB.NET]程序中如何调用系统的快捷键?
- WEB调用系统颜色选择对话框
- iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话)
- 解决通过Intent调用系统拍照程序,返回图片太小的问题[android] 【转】
- iphone开发中调用系统打电话功能
- 怎样使用MFC 调用windows系统程序 windows media player
- php 调用系统命令 执行外部程序