通讯录联系人跳转

针对iOS系统9.0以上和以下版本,本文介绍了如何处理通讯录联系人选择问题。当联系人只有一个电话号码时,直接返回,否则展示详情页供用户选择。通过CNContactPickerViewController和ABPeoplePickerNavigationController实现不同系统的兼容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到一个通讯录跳转的问题,对于联系人来说,如果只有一个电话号码就直接dismiss返回,否则进入详情页进行选择后返回。在iOS 9.0系统前后可做如下处理:
 if([[UIDevice currentDevice] systemVersion].floatValue >= 9.0){
        CNContactPickerViewController *contactController = [CNContactPickerViewController new];
        contactController.delegate = self;
        [contactController setPredicateForSelectionOfContact:[NSPredicate predicateWithFormat:@"phoneNumbers.@count == 1"]];
        [controller presentViewController:contactController animated:YES completion:nil];
    }else{
       
        ABPeoplePickerNavigationController *peoplePickerNavigationController = [ABPeoplePickerNavigationController new];
        peoplePickerNavigationController.peoplePickerDelegate = self;
        peoplePickerNavigationController.predicateForSelectionOfPerson = [NSPredicate predicateWithFormat:@"phoneNumbers.@count == 1"];
        [controller presentViewController:peoplePickerNavigationController animated:YES completion:nil];
    }
然后实现各自的两个点击联系人的协议,就OK啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值