사용자가 세부 정보를 직접 편집 할 수있게하려면 Apple's documentation on displaying and editing a person record을 참조하십시오. 첫 번째 섹션에서는 "ABPersonViewControllerDelegate 프로토콜을 채택해야하는 대리자를 설정합니다. 사용자가 레코드를 편집 할 수있게하려면 allowsEditing을 YES로 설정하십시오." 예를 들어
: 그 편집하지 않고 사람의 세부 사항을 표시하기 위해 필요한 allowsEditing를 설정하는 것보다
ABPersonViewController *personViewController = [[ABPersonViewController alloc] init];
personViewController.personViewDelegate = self;
personViewController.allowsEditing = YES;
기타, 코드가 정확히 같은 것이다. 이 코드는 this answer에서 가져 와서 주소록에서 연락처를 삭제하는 것과 관련된 더 자세한 예를 보여줍니다.
그러나 제목이 프로그래밍 방식으로 수행되는 것을 참조합니다. 애플의 Address Book Programing Guide for iOS은 "사용자가 궁극적으로 주소록 데이터베이스를 소유하고 있으므로 응용 프로그램이 예상치 못한 변경을하지 않도록주의해야한다. 일반적으로 변경은 사용자가 시작하거나 확인해야한다."
그러나 가능합니다. 다음 예는 해당 문서의 17 페이지에 나와 있습니다.
ABRecordRef aRecord = ABPersonCreate();
CFErrorRef anError = NULL;
bool didSet;
didSet = ABRecordSetValue(aRecord, kABPersonFirstNameProperty, CFSTR("Katie"), &anError);
if (!didSet) {/* Handle error here. */}
didSet = ABRecordSetValue(aRecord, kABPersonLastNameProperty, CFSTR("Bell"), &anError);
if (!didSet) {/* Handle error here. */}
CFStringRef firstName, lastName;
firstName = ABRecordCopyValue(aRecord, kABPersonFirstNameProperty);
lastName = ABRecordCopyValue(aRecord, kABPersonLastNameProperty);
/* ... Do something with firstName and lastName. ... */
CFRelease(aRecord);
CFRelease(firstName);
CFRelease(lastName);