Как использовать ABPeoplePickerNavigationController на клиентах в основном стеке данных - PullRequest
1 голос
/ 21 февраля 2012

У меня есть основной стек данных, который содержит сущность под названием «Клиент».У каждого клиента есть свойство addressBookID, которое ссылается на уникальный идентификатор записи человека в адресной книге.В настоящее время я использую fetchedResultsController, чтобы заполнить tableViewController для отображения этих клиентов.Однако viewController является очень простым.

В идеале я хочу использовать пользовательский интерфейс ABPeoplePickerNavigationController, чтобы мои клиенты были разделены по разделам «Last Initial», а также иметь панель перетаскивания с правой стороны, которая может быстро перемещаться кнужная точка в алфавите.Также были бы полезны дополнительные функции поиска.

Можно ли использовать ABPeoplePickerNavigationController, но заполнить его своими собственными данными (например, с помощью делегата)?

Атернально, эти битыфункциональность легко добавляется в таблицу стилей fetchedResultsController?Единственная другая проблема, с которой я столкнулся, - это возможность получать результаты из стека базовых данных, но сортировать их по их именам, хранящимся в ABAddressBook.Я не уверен, что sortDescriptor может сортировать по ссылке на поле, хранящееся вне стека.

Цените любые советы / комментарии?

1 Ответ

1 голос
/ 25 февраля 2012

Вам необходимо создать ABAddressBookRef и заполнить его контактами, которые вы хотите отобразить в контроллере навигации. Затем создайте ABPeoplePickerNavigationController и назначьте свой ABAddressBookRef для свойства addressBook.

Документация ABPeoplePickerNavigationController

Optional. The address book from which to obtain the list of contacts.

@property(nonatomic, readwrite) ABAddressBookRef addressBook

Чтобы создать ABAddressBookRef, начните с ABAddressBookCreate () и ABAddressBookAddRecord (). Эти функции описаны в Справочнике Apple ABAddressBook для iOS .

Если вы хотите, чтобы изменения в ABAddressBookRef не сохранялись (другими словами, вы хотите настроить его с помощью временных контактов), просто не вызывайте ABAddressBookSave (). В документации говорится

Изменения, внесенные в возвращенную адресную книгу, отражаются в базе данных адресной книги только после сохранения адресной книги с помощью ABAddressBookSave.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...