我实际上遇到了同样的问题,但找不到答案。但后来我看到你提到了属性“shouldShowLinkedPeople”,这正是解决方案!您所要做的就是将该属性设置为 YES,您将能够在 ABPersonViewController 中查看和编辑所有链接的联系人。
这是我所做的(我的应用程序利用了 ABPeoplePickerNavigationController):
在我符合 ABPeoplePickerNavigationControllerDelegate 的 ABPeoplePickerNavigationController 子类中:
#import <UIKit/UIKit.h>
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>
@interface ContactsViewController : ABPeoplePickerNavigationController <ABPeoplePickerNavigationControllerDelegate>
@end
实现该方法,该方法允许您通过 ABPersonViewController 通过单击 ABPeoplePickerNavigationController 中的联系人来查看/编辑联系人:
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
ABPersonViewController *contactDetailViewController = [[ABPersonViewController alloc] init];
contactDetailViewController.shouldShowLinkedPeople = YES;
contactDetailViewController.displayedPerson = person;
contactDetailViewController.allowsEditing = YES;
[self pushViewController:contactDetailViewController
animated:YES];
return NO;
}
要编辑链接的联系人(例如 Facebook、iCloud 等),您必须包含以下行:
contactDetailViewController.shouldShowLinkedPeople = YES;
否则,您将只能编辑其中一个链接的联系人,这可能是不受欢迎的。