Добавить к существующему контакту - PullRequest
3 голосов
/ 24 мая 2011

Я пытаюсь повторить поведение iPhone по умолчанию для добавления номера телефона к существующему контакту.Чтобы уточнить, я говорю об интерфейсе, а не программно.

Моя первая попытка состояла в том, чтобы представить ABPeoplePickerNavigationController, а когда пользователь выбирает человека, представить ABNewPersonViewController выбранному человеку.Проблема этого метода заключается в том, что если пользователь нажимает кнопку отмены, контакт удаляется из адресной книги.

1 Ответ

3 голосов
/ 24 мая 2011

Вы должны реализовать метод делегата peoplePickerNavigationControllerDidCancel: (так, как это требуется), и вы можете сохранить человека обратно, если вам нужно.

(возможно, лучший) способ справиться с этим - скопировать адресную книгу, предоставить копию ABPeoplePickerNavigationController, а затем, когда пользовательский интерфейс будет завершен, вы узнаете, следует ли сохранить оригинал (если кто-то был удален случайно?) или заменить его на копию с добавленной информацией. Надеюсь это поможет! Кроме того, взгляните на образец кода Apple QuickContacts здесь !

Отредактируйте способ копирования массива людей из адресной книги:

// Fetch the address book 
ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray *copy = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook)

Другое редактирование. Хорошее место для начала в руководствах для разработчиков - документы ABAddressBook здесь

...