我使用CNContactPickerViewController,我想隐藏联系人详细信息中的操作按钮(调用,消息,面部时间).
我知道CNContactViewController中的allowActions属性,但我不知道,如果我使用CNContacPickerViewController,我怎么能访问这个属性.
使用CNContactPickerViewController时,如何隐藏联系人详细信息中的操作按钮?
解决方法
您不能将allowActions属性与CNContactPickerViewController一起使用.我使用这种方法,它没有显示任何联系人的详细信息,它只显示像这样的
之后,您可以选择任何联系人,委托方法将为您提供该联系人的联系方式.
-(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,并且还必须从Build Settings添加ContactsUI.framework和Contacts.framework.
这是工作代码.
IMP注意:这仅适用于iOS 9.0以上版本.如果您支持8.0以上,那么添加操作系统检查并使用AddressBook.framework& AddressBookUI.framework