美文网首页
Contacts and ContactsUI 通讯录简单使用一

Contacts and ContactsUI 通讯录简单使用一

作者: 写代码的小书童 | 来源:发表于2019-07-11 23:55 被阅读0次

    Hello Contacts,say goodbye Address​Book​!

    Contacts.framework 框架针对线程安全的只读使用进行了优化。9.0以上才可以。

    contact class 是线程安全的,contact class is like NSDictionary 并且有可变子类CNMutableContact。 you can create your own custom labels. 

    不说多,先显示一下 你的通讯录

    CNContactPickerViewController  为显示通讯录的ViewController 

    CNContactPickerDelegate 为代理 引入Contacts 和ContactsUI

    #import <Contacts/Contacts.h>

    #import <ContactsUI/ContactsUI.h>

    @interface ViewController ()<CNContactPickerDelegate,CNContactViewControllerDelegate>

    @end

    - (void)viewDidLoad {

        [super viewDidLoad];

    简单显示 你的通讯录

    CNContactPickerViewController *contactPickerViewController = [[CNContactPickerViewController alloc] init];

        // 设置代理    contactPickerViewController.delegate=self;

        // 显示联系人窗口视图

        [self presentViewController:contactPickerViewController animated:YES completion:nil];

    }

    当然啦,不能只显示通讯录。 按钮时间都需要代理回调。

     //点击联系人控制器的Cancel按钮执行该方法

    - (void)contactPickerDidCancel:(CNContactPickerViewController*)picker{

        NSLog(@"取消");

    }

    // 选中联系人时执行该方法

    - (void)contactPicker:(CNContactPickerViewController*)picker didSelectContact:(CNContact*)contact{

        NSLog(@"联系人的资料:%@",contact);

        [self dismissViewControllerAnimated:YES completion:nil];

      //显示联系人详细页面.  这个页面需要CNContactViewControllerDelegate 代理

      CNContactViewController *contactController = [CNContactViewController viewControllerForNewContact:contact];

        contactController.delegate=self;

        UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:contactController];

        [self settingNavBarForNavController:navController];

        [self  presentViewController:navController animated:YES completion:nil];

    }

    //当用户选择属性时调用

    - (BOOL)contactViewController:(CNContactViewController*)viewController shouldPerformDefaultActionForContactProperty:(CNContactProperty*)property{

        return NO;

    }

    //该协议是在创建新的名片界面点击取消或者确定后的回调

    - (void)contactViewController:(CNContactViewController*)viewController didCompleteWithContact:(nullableCNContact*)contact{

        [viewControllerdismissViewControllerAnimated:YES completion:nil];

    }

    相关文章

      网友评论

          本文标题:Contacts and ContactsUI 通讯录简单使用一

          本文链接:https://www.haomeiwen.com/subject/xugjkctx.html