2

Я создал UISearchDisplayController, который использует отдельный UITableViewController в качестве делегата для отображения результатов поиска. С этой точки зрения контроллера, у меня есть метод «didSelectRowAtIndexPath», который выделяет и инициализирует detailViewController затем использует:Невозможно нажать контроллер просмотра из делегата UISearchDisplayController

[[self navigationController] pushViewController: detailViewController animated: YES]; 

, чтобы толкать его в стек. Однако эта строка не работает. Когда ячейка прослушивается, ничего не происходит. Вызывается 'didSelectRowAtIndexPath', но вызов метода pushViewController не работает. Разве я не в контексте моего навигационного контроля больше? Как я могу исправить эту проблему?

Любая помощь будет высоко оценена.

+0

Это звучит как [само navigationController] равно нуль. Сделайте контрольную точку в коде и посмотрите, действительно ли она равна нулю. Если это nil, вам нужно найти, какой контроллер представления находится внутри контроллера навигации и вызвать его там. – vakio 2010-11-23 12:25:48

ответ

3

Навигатор вашей таблицыКонтроллер, вероятно, не тот, я думаю, что вы можете нажать его на навигационном контроллере вашего UISearchDisplayController. Для этого вы можете создать протокол в вашем контроллере tableview с помощью метода pushViewController и, например, реализовать его UISearchDisplayController.

Тогда ваш реестр этот делегат в вашем представлении таблицы, и вы называете ваш делегат на pushViewcontroller в вашем «didSelectRowAtIndexPath»

Смежные вопросы