ABPersonViewController в DidSelectRowAtIndex — методе

#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 .