iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >iOS实现从通讯录中选择联系人
  • 604
分享到

iOS实现从通讯录中选择联系人

iOS通讯录联系人 2022-06-04 10:06:22 604人浏览 独家记忆
摘要

有时候APP需要用户输入一位联系人的姓名和电话,除了用户手动输入,一般也允许用户从通讯录中选择一位联系人(图1),下面的代码就是使用系统的<AddressBookUI/Addr

有时候APP需要用户输入一位联系人的姓名和电话,除了用户手动输入,一般也允许用户从通讯录中选择一位联系人(图1),下面的代码就是使用系统的<AddressBookUI/AddressBookUI.h>库实现这一需求。

图1

完整代码:


#import "ViewController.h"
#import <AddressBookUI/AddressBookUI.h>
 
@interface ViewController ()<abpeoplePickerNavigationControllerDelegate>
@property (weak, nonatomic) IBOutlet UITextField *nameTextField;
@property (weak, nonatomic) IBOutlet UITextField *phoneTextField;
 
@end
 
@implementation ViewController
 
- (void)viewDidLoad {
    [super viewDidLoad];
 
}
 
 
//用户点击选择按钮
- (IBAction)clickSelect:(UIButton *)sender {
    ABPeoplePickerNavigationController *picker =[[ABPeoplePickerNavigationController alloc] init];
    picker.peoplePickerDelegate = self;
    [self presentViewController:picker animated:YES completion:nil];
}
 
//这个方法在用户取消选择时调用
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker
{
    [self dismissViewControllerAnimated:YES completion:^{}];
}
 
//这个方法在用户选择一个联系人后调用
-(void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person{
    [self displayPerson:person];
    [self dismissViewControllerAnimated:YES completion:^{}];
}
 
//获得选中person的信息
- (void)displayPerson:(ABRecordRef)person
{
    NSString *firstName = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty);
    NSString *middleName = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonMiddleNameProperty);
    NSString *lastname = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonLastNameProperty);
    NSMutableString *nameStr = [NSMutableString string];
    if (lastname!=nil) {
        [nameStr appendString:lastname];
    }
    if (middleName!=nil) {
        [nameStr appendString:middleName];
    }
    if (firstName!=nil) {
        [nameStr appendString:firstName];
    }
    
    NSString* phone = nil;
    ABMultiValueRef phoneNumbers = ABRecordCopyValue(person,kABPersonPhoneProperty);
    if (ABMultiValueGetCount(phoneNumbers) > 0) {
        phone = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
    } else {
        phone = @"[None]";
    }
    
    //可以把-、+86、空格这些过滤掉
    NSString *phoneStr = [phone stringByReplacinGoccurrencesOfString:@"-" withString:@""];
    phoneStr = [phoneStr stringByReplacingOccurrencesOfString:@"+86" withString:@""];
    phoneStr = [phoneStr stringByReplacingOccurrencesOfString:@" " withString:@""];
    
    [self.nameTextField setText:nameStr];
    [self.phoneTextField setText:phoneStr];
} 
 
@end

源代码下载:点击打开链接

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: iOS实现从通讯录中选择联系人

本文链接: https://www.lsjlt.com/news/30523.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP实现多对一通讯录:简单实用的联系人管理
    PHP实现多对一通讯录:简单实用的联系人管理 随着社交网络的普及,人们的社交关系变得越来越复杂,管理联系人信息也变得越来越重要。在这种背景下,开发一个简单实用的联系人管理系统变得尤为重...
    99+
    2024-03-15
    php 多对一 通讯录 社交网络 php编写
  • Android添加联系人到通讯录的方法
    目录字段联系人名字联系人昵称联系人头像联系人备注联系人号码联系人公司和职位网站联系人邮箱联系人地址添加方式1. 静默添加2. 跳转添加3. 添加到现有联系人权限字段 联系人名字 ...
    99+
    2024-04-02
  • Android保存联系人到通讯录的方法
    上一篇文章讲了如何获取所有联系人,这篇文章就讲下怎么保存联系人数据到本机通讯录。这里我就假设你已经拿到了要保存的联系人数据。 因为是一个工具类,所以我这里就只给一个方法了,也是很简单,但是写的没有读取联系人的数据那么多,要保存更多...
    99+
    2023-05-30
    android 联系人 通讯录
  • Android编程实现通讯录中联系人的读取,查询,添加功能示例
    本文实例讲述了Android编程实现通讯录中联系人的读取,查询,添加功能。分享给大家供大家参考,具体如下:先加二个读和写权限:<uses-permission android:name="android.permission.READ...
    99+
    2023-05-31
    android 通讯录 联系人
  • Python使用Rich type和TinyDB构建联系人通讯录
    目录引言工具准备通讯录特征如何创建联系人模型如何使用TinyDB创建数据库如何使用typer创建命令行如何使用Rich设计终端如何使用打字命令连接数据库操作引言 我们将学习如何构建一...
    99+
    2024-04-02
  • python实现通讯录系统
    本文实例为大家分享了python实现通讯录系统的具体代码,供大家参考,具体内容如下 一、首先,给大家看一下这个系统的主菜单效果 如下: 二、步骤分析 1、首先创建一个main.py...
    99+
    2024-04-02
  • 从零开始:PHP实现多对一通讯录系统详解
    从零开始:PHP实现多对一通讯录系统详解 随着互联网的普及和社交网络的发展,人们在日常生活中联系的方式变得多样化。一个方便管理联系人信息的通讯录系统变得越来越重要。在本文中,我们将使用...
    99+
    2024-04-02
  • C++如何实现通讯录系统
    本篇内容介绍了“C++如何实现通讯录系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!制作一个具有添加联系人、删除联系人、修改联系人等功能的...
    99+
    2023-07-02
  • python实现通讯录管理系统
    本文实例为大家分享了python实现通讯录管理系统的具体代码,供大家参考,具体内容如下 题目 期末项目  一. 项目要求 利用函数实现通讯录管理系统,通讯录的内容包含姓名、...
    99+
    2024-04-02
  • C++实现简单通讯录系统
    本文实例为大家分享了C++实现简单通讯录系统的具体代码,供大家参考,具体内容如下 需求分析: 1.通讯录可以添加联系人。 2.通讯录可以显示所有联系人。 3.通讯录可以查找联系人。 ...
    99+
    2024-04-02
  • python怎么实现通讯录系统
    这篇文章主要讲解了“python怎么实现通讯录系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python怎么实现通讯录系统”吧!一、首先,给大家看一下这个系统的主菜单效果如下:二、步骤分...
    99+
    2023-06-30
  • C++实现通讯录系统项目实战
    本文实例为大家分享了C++实现通讯录系统项目的具体代码,供大家参考,具体内容如下 制作一个具有添加联系人、删除联系人、修改联系人等功能的通讯录系统 效果图: 代码如下: #incl...
    99+
    2024-04-02
  • python如何实现通讯录管理系统
    一. 项目要求我们可以使用函数来实现通讯录管理系统,该系统需要保存姓名、联系方式、微信号、电子邮件等联系人信息。至少要包含姓名和联系方式两种。该管理系统具备添加、删除、修改、查询、显示和保存信息的功能。二.项目步骤1.使用自定义函数实现每个...
    99+
    2023-05-22
    Python
  • C++实现通讯录管理系统项目
    本文实例为大家分享了C++实现通讯录管理系统的具体代码,供大家参考,具体内容如下 1、通讯录设计要点 1:添加联系人:向通讯录中添加新人(包括:性别,年龄,联系电话,家庭住址),并且...
    99+
    2024-04-02
  • python实现简单通讯录管理系统
    本文实例为大家分享了python实现通讯录管理系统的具体代码,供大家参考,具体内容如下 =====欢迎使用通讯录管理系统=====1.添加2.修改3.册除4.查询5.排序6.退出==...
    99+
    2024-04-02
  • C语言实现通讯录系统程序
    本文实例为大家分享了C语言实现通讯录系统程序的具体代码,供大家参考,具体内容如下 前言 利用链表增、删、改、查功能以及文件来完成通讯录系统。通讯录中包含联系人的基本信息:姓名、联系电...
    99+
    2024-04-02
  • C++实现简易通讯录管理系统
    目录前言结构体联系人结构体通讯录结构体函数模块菜单添加联系人显示联系人判断联系人删除联系人查找联系人清空所有联系人main函数源代码运行结果本文实例为大家分享了C++实现简易通讯录管...
    99+
    2024-04-02
  • C语言实现简单通讯录系统
    本文实例为大家分享了C语言通讯录系统(增删改查),供大家参考,具体内容如下 全部代码如下所示: #include <iostream> #include <s...
    99+
    2024-04-02
  • Java实现简单通讯录管理系统
    本文实例为大家分享了Java实现通讯录管理系统的具体代码,供大家参考,具体内容如下 题目: 1、完成一个通讯录,需求: (1)添加联系人(联系人:编号,姓名,手机号,QQ,邮箱地址)...
    99+
    2024-04-02
  • C++实现简单通讯录管理系统
    本文实例为大家分享了C++实现简单的通讯录管理系统的具体代码,供大家参考,具体内容如下 一、代码 #include <iostream> #include <str...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作