#iphone
#iPhone
Вопрос:
я пытаюсь открыть ABPersonViewController в методе ‘didSelectRowAtIndexPath:’. Но когда я нажимаю на одну из моих записей в табличном представлении, она ничего не показывает.Я не могу определить, в чем проблема. Где ‘people’ — это массив, имеющий имя контакта. вот мой код:
(недействительный)TableView:(UITableView *)TableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { ABRecordRef person = (ABRecordRef)[объект peopleAtIndex:indexPath.row]; ABPersonViewController *pvc = [[Выделение ABPersonViewController] инициализация]; pvc.personViewDelegate = self; pvc.Отображаемый пользователь = person; [self.NavigationController pushViewController: анимированный пвх: ДА]; [автоматический выпуск pvc]; } - (BOOL)personViewController:(ABPersonViewController *)personViewController должен выполнить defaultactionforperson:(ABRecordRef)person свойство:(ABPropertyID) идентификатор свойства: (ABMultiValueIdentifier)Идентификатор значения { возвращает НЕТ; }
Комментарии:
1. Что происходит? Выполняется ли нажатие для отображения пустого представления. Если нажатие не выполняется, пожалуйста, убедитесь, что viewcontroller имеет NavigationController
2. @7kv7: должен ли я добавить навигационный контроллер в IB или в мой код …?
3. Это решать вам. Вы можете выбрать наличие навигационного контроллера в ur IB для управления навигацией или создать его программно
4. @7kv7: можете ли вы показать мне, как это сделать программно.
Ответ №1:
Вам нужно установить displayedProperties
. Это NULL
по умолчанию.
Например,
picker.displayedProperties = [NSArray arrayWithObject:
[NSNumber numberWithInt:kABPersonAddressProperty]];
Комментарии:
1. как установить отображаемые свойства?
2. Вам нужно будет создать массив свойств, выбранных из
this page
. Перейдите в раздел константы и выберите все имена свойств, которые вам нужны, и создайте массив. Назначьте егоdisplayedProperties
.