zoukankan      html  css  js  c++  java
  • iOS10

    • 所需框架
    #import <ContactsUI/ContactsUI.h>
    
    • 遵循代理
    CNContactPickerDelegate
    
    • 调用通讯录
      • 如果在iOS10的机器上调用以前的ABPeoplePickerNavigationController老方法将直接崩溃.
    -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
        //iOS 10
    //    AB_DEPRECATED("Use CNContactPickerViewController from ContactsUI.framework instead")
        CNContactPickerViewController * contactVc = [CNContactPickerViewController new];
        contactVc.delegate = self;
        [self presentViewController:contactVc animated:YES completion:^{
            
        }];
    }
    
    • 选择完成代理回调
    #pragma mark - 用户点击联系人获取方法 两个方法都写只调用此方法
    -(void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact{
        
    //    NSLog(@"contact : %@",contact);
        
                                    // 姓氏               名字
        NSLog(@"name:%@%@",contact.familyName,contact.givenName);
        
        //公司名
        NSLog(@"公司: %@",contact.organizationName);
    
        //获取通讯录某个人所有电话并存入数组中 需要哪个取哪个
        NSMutableArray * arrMPhoneNums = [NSMutableArray array];
        for (CNLabeledValue * labValue in contact.phoneNumbers) {
            
            NSString * strPhoneNums = [labValue.value stringValue];
            NSLog(@"所有电话是: %@",strPhoneNums);
            [arrMPhoneNums addObject:strPhoneNums];
        }
        
        //所有邮件地址数组
        NSMutableArray * arrMEmails = [NSMutableArray array];
        for (CNLabeledValue * labValue in contact.emailAddresses) {
            
            NSLog(@"email : %@",labValue.value);
            [arrMEmails addObject:labValue.value];
        }
        [picker dismissViewControllerAnimated:YES completion:nil];
    }
    
    • 用户点某个联系人进去获取属性调用的方法 例如从通讯录选择联系人打电话两个方法都写只调用上面方法
    #pragma mark - 用户点进去获取属性调用方法 例如从通讯录选择联系人打电话两个方法都写只调用上面方法
    - (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty{
    
    //    NSLog(@"contactProperty : %@",contactProperty);
    //    NSLog(@"contact : %@",contactProperty.contact);
    //    NSLog(@"key : %@",contactProperty.key);
    //    [[UIApplication sharedApplication] openURL:url];
    //    NSLog(@"identifier : %@",contactProperty.identifier);
    //    NSLog(@"label : %@",contactProperty.label);
        
        //获得点击的属性,在此进行处理...
        NSLog(@"value : %@",[contactProperty.value stringValue]);
        [picker dismissViewControllerAnimated:YES completion:nil];
    }
    
    
    • 取消选择回调
    - (void)contactPickerDidCancel:(CNContactPickerViewController *)picker{
    
        [picker dismissViewControllerAnimated:YES completion:nil];
    }
    
  • 相关阅读:
    在VMware 虚拟机中彻底删除linux系统
    Linux中安装MySQL5.7和查看启动状态
    VMware启动时提示我已移动或我已复制该虚拟机
    Linux中查看MySQL版本启动默认安装位置
    linux 下查看redis是否启动和启动命令
    Linux中查看redis版本
    maven下载依赖失败解决方案
    《痞子衡嵌入式半月刊》 第 27 期
    痞子衡嵌入式:盘点国内车规级MCU厂商
    痞子衡嵌入式:盘点国内Cortex-M内核MCU厂商高性能产品
  • 原文地址:https://www.cnblogs.com/adampei-bobo/p/6033049.html
Copyright © 2011-2022 走看看