これは私が試したことです:
-(void) vDisplayPerson:(ABRecordRef)person
{
ABPersonViewController *picker = [[ABPersonViewController alloc] init] ;
picker.personViewDelegate = self;
picker.displayedPerson = person;
picker.displayedProperties=@[@(kABPersonPhoneProperty),@(kABPersonEmailProperty),@(kABPersonBirthdayProperty),@(kABPersonOrganizationProperty),@(kABPersonJobTitleProperty),@(kABPersonDepartmentProperty),@(kABPersonNoteProperty),@(kABPersonCreationDateProperty)];
// Allow users to edit the person’s information
picker.allowsEditing = YES;
[self.navigationController pushViewController:picker animated:YES];
}
さまざまなものを含むように、displayedProperties をセットアップしたことに注意してください。電話。人。誕生日。ただし、名前と役職のみが表示されます。
人々が連絡先で見るのと同じ種類の情報を表示したいと考えています。iOS6ではできなくなりましたか?
更新: 問題はディスプレイにあるのではなく、なんらかの理由で個人レコード全体に電話番号が含まれていないことが原因ではないかと強く疑っています。これは、連絡先を編集して電話番号を追加し、電話番号が表示されるためです。ただし、更新は「実際の」連絡先には反映されません。プログラムで行った更新が実際の連絡先に反映されません。実際の連絡先の更新がプログラムに表示されません。
CFArrayRef refAllPeople = ABAddressBookCopyArrayOfAllPeople( addressBook ); を使用しています。
ちなみに、これはiPhone 5.1シミュレーターにあります。