使用CNContactPicker时,在联系人详细信息中隐藏操作按钮

时间:2016-12-14 14:29:34

标签: ios objective-c cncontactviewcontroller cncontactpicker

我使用CNContactPickerViewController我希望隐藏联系人详细信息中的操作按钮(来电,留言,面对面时间)。

我知道allowActions中的CNContactViewController属性,但我不知道,如果我使用CNContacPickerViewController,我将如何访问此属性。

使用CNContactPickerViewController时,如何隐藏联系人详细信息中的操作按钮?

1 个答案:

答案 0 :(得分:0)

您不能将allowActions属性与CNContactPickerViewController一起使用。我正在使用这种方法,它没有显示任何联系人的详细信息,它只显示这样的列表enter image description here

之后您可以选择任何联系人,委托方法将为您提供该联系人的联系方式。

-(void) openDeviceContactList {
    CNContactPickerViewController *contactPicker = [CNContactPickerViewController new];
    contactPicker.delegate = self;
    [self presentViewController:contactPicker animated:YES completion:nil];
}

- (void) contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact {
    [self getPhoneNumberFrom:contact];
}

-(void)getPhoneNumberFrom:(CNContact *)contactObject {

    NSString * phone = @"";
    NSString * userPHONE_NO = @"";
    for(CNLabeledValue * phonelabel in contactObject.phoneNumbers) {
        CNPhoneNumber * phoneNo = phonelabel.value;
        phone = [phoneNo stringValue];
        if (phone) {
            userPHONE_NO = phone;
        }
        break;
    }
    NSLog(@"PHONE NO :: %@",userPHONE_NO);
}

在您要打开联系人列表的按钮上拨打[self openDeviceContactList];。这将显示CNContactPickerViewController。出于这个原因,您必须实施CNContactPickerDelegate,并且还必须从ContactsUI.framework添加Contacts.frameworkBuild Settings

这是有效的代码。

IMP注意:这仅适用于iOS 9.0以上版本。如果您支持8.0以上,那么添加操作系统检查并使用AddressBook.framework& AddressBookUI.framework