| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- //
- // RAContact.m
- // APEX CRM
- //
- // Created by Jack on 2018/12/15.
- // Copyright © 2018 USAI. All rights reserved.
- //
- #import "RAContactHelper.h"
- #import <Contacts/Contacts.h>
- #import <ContactsUI/ContactsUI.h>
- static RAContactHelper *sharedInstance;
- @interface RAContactHelper () <CNContactPickerDelegate>
- @property (nonatomic,copy) void(^pickerCompleteBlk)(BOOL canceled, NSArray<CNContact *> *contacts);
- @end
- @implementation RAContactHelper
- + (instancetype)defaultHelper {
-
- static dispatch_once_t token;
- dispatch_once(&token, ^{
- sharedInstance = [RAContactHelper new];
- });
- return sharedInstance;
- }
- - (void)showContactPickerByViewController:(UIViewController *)viewController withComplete:(void(^)(BOOL canceled, NSArray<CNContact *> *contacts))complete {
- if (viewController) {
-
- CNContactPickerViewController *pickerVC = [[CNContactPickerViewController alloc] init];
- pickerVC.delegate = self;
- [viewController presentViewController:pickerVC animated:YES completion:^{
-
- }];
- self.pickerCompleteBlk = [complete copy];
- }
- }
- #pragma mark - Contact
- - (void)contactPickerDidCancel:(CNContactPickerViewController *)picker {
- if (self.pickerCompleteBlk) {
- self.pickerCompleteBlk(YES, nil);
- }
- self.pickerCompleteBlk = nil;
- }
- // 四个select代理方法只用实现一个就可以
- // select contact 优先级比 select contact property高
- // 多选 优先级 比单选 高
- - (void)contactPicker:(CNContactPickerViewController *)picker didSelectContacts:(NSArray<CNContact *> *)contacts {
- if (self.pickerCompleteBlk) {
- self.pickerCompleteBlk(NO, contacts);
- }
- self.pickerCompleteBlk = nil;
- }
- //- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperties:(NSArray<CNContactProperty *> *)contactProperties {
- //
- //}
- //
- //- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact {
- //
- //}
- //
- //- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty {
- //
- //}
- @end
|