您不能使用allowActions
属性CNContactPickerViewController
。我正在使用这种方法和它没有显示任何联系人的详细信息,它只显示像这样的列表![enter image description here](https://i.stack.imgur.com/30BYb.png)
之后,您可以选择任何联系人和委托方法将为您提供该联系人的联系详细信息。
-(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.framework
从Build Settings
。
这是工作代码。
IMP注意:这仅适用于iOS 9.0以上版本。如果您支持8.0以上,然后添加操作系统检查并使用AddressBook.framework & AddressBookUI.framework
您是否得到了解决方案?我对我的应用程序有相同的要求。 –
是的,我写了我自己的ContactViewController)) – Artem