Итак, вот сценарий, у меня есть SearchController, который отображает отфильтрованные результаты из списка контактов моего приложения, а также присутствует в моей адресной книге.
Код, который выдвигает ABPersonViewController, присутствует в моем didSelectObject: метод atIndex.вот код:
TableCellClass *selectedCell= (TableCellClass *)[self.tableView cellForRowAtIndexPath:indexPath];
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef arrayOfAllPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
ABRecordRef thisPerson = CFArrayGetValueAtIndex(arrayOfAllPeople,selectedCell.contactIndex);
ABPersonViewController *picker = [[ABPersonViewController alloc]init];
picker.personViewDelegate = self;
picker.displayedPerson = thisPerson;
picker.allowsEditing = YES;
[self.navigationController pushViewController:picker animated:YES];
Этот блок кода отлично работает на стандартном TTTableViewController, но почему-то не работает на моем searchController.
Вот снимок экрана, кстати.Так что, как видите, NavigationController отсутствует.Это по умолчанию на Three20.Ячейка со значком адресной книги - это Элемент, который запускает ABPersonViewController при нажатии жеста