Как использовать ABPersonViewController без подключения к AddressBook - PullRequest
1 голос
/ 18 ноября 2010

Настройка: Я ищу понимание использования ABPersonViewContoller без получения данных из адресной книги. У меня есть веб-сервис JSON, который передает представление таблицы, и мои личные объекты хранятся в mutableArray в виде словарей.

мой вопрос: Я искал и не смог найти никаких ссылок на использование personViewController с вашими собственными объектами. Могу ли я инициировать новый personView, назначить ему объект person и нажать контроллер? или мне лучше откатить свой собственный взгляд, чтобы дублировать яблочный?

Обновление: Как предложил Эрик, используя ABRecordRef в качестве моего объекта, он действительно влияет на работу. Вот пример кода.

    // get index and set person object
    int personIndex = [indexPath indexAtPosition: [indexPath length] - 1];
    ABRecordRef person = ABPersonCreate();

    ABRecordSetValue(person, kABPersonFirstNameProperty, [[personList objectAtIndex: personIndex] objectForKey: @"firstName"], nil);
    ABRecordSetValue(person, kABPersonLastNameProperty, [[personList objectAtIndex:personIndex] objectForKey:@"lastName"], nil);

    // initialize a personviewController
    ABPersonViewController *personViewController = [[ABPersonViewController alloc] init];

    personViewController.personViewDelegate = self; 
    personViewController.displayedPerson = person;
    personViewController.allowsEditing = NO;

    // push to view controller
    [[self navigationController] pushViewController:personViewController animated:YES];
    [personViewController release];

надеюсь, это поможет другим.

1 Ответ

2 голосов
/ 19 ноября 2010

ABPersonViewController привязан к AddressBook устройства iOS (со всей Address Book UI Framework ), поэтому я считаю, что было бы проще свернуть свой собственный UIViewController, чтобы получить то, что вы хотите. Кроме того, в документах обратите внимание на то, что «для правильной работы контроллеры просмотра лица должны использоваться с контроллером навигации». Так что вы (возможно) ограничены там.

Это говорит (и я не пробовал), но похоже, что атрибут displayedPerson равен readwrite, поэтому я предполагаю, что если ваши данные хранятся в вашем массиве как ABRecordRef, это может сработать.

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