Повторное использование таблицы из другого контроллера: как разделить поведение didSelectRowAtIndexPath? - PullRequest
0 голосов
/ 28 марта 2011

В настоящее время я работаю над реализацией моего Избранного. В конце концов, он должен работать так же, как избранные функции в телефонной книге на iPhone.

У меня есть следующие настройки (помимо других контроллеров и классов):

  • TabBarController (называется mainTabBarController)
  • NavigationController с табличным представлением (назовем его listNavController)
  • ViewController с некоторыми компонентами для отображения деталей строки (с именем detailViewController)
  • NavigationController с табличным представлением для избранных записей (с именем FavoritesNavController)

В FavoritesNavController я хочу выбрать строку (из listNavController ), чтобы я мог добавить новую запись в мой просмотр таблицы Избранное.

Итак, я решил снова использовать мой listNavController , потому что он обладает всеми необходимыми мне функциями. Как поиск, индекс и т. Д.

Мне удалось показать listNavController из mainTabBarController . Так что нет проблем здесь. Когда я выбираю строку из listNavController , он отображает мой detailViewController для этой строки. Конечно, это ожидалось, потому что это в didSelectRowAtIndexPath в listNavController .

Но когда я запускаю listNavController из моего FavoritesNavController с помощью presentModelViewController , он все равно показывает detailViewController при выборе строка.

В этом случае я хочу вернуть выбранную строку в мой FavoritesNavController . Затем я могу добавить его в список моих любимых.

Итак, как мне дифференцировать это поведение в коде? Должен ли я использовать протоколы, делегирование и т. Д.?

Какие-нибудь советы?

С уважением,

Рутгер

1 Ответ

0 голосов
/ 04 апреля 2011

Оказалось, что я смотрю в неправильном направлении.

Решение опубликованного вопроса заключается в следующем:

Я создал подкласс моего listNavController и переопределил метод didSelectRowAtIndexPath.Затем я представил этот новый контроллер представления с контроллером навигации в качестве модального представления (presentModalViewController).

Наконец, я установил делегат и протокол для контроллера подкласса представления в инициирующий класс.Таким образом, я могу представить и отклонить контроллер подкласса вида с того же контроллера.Намного более чистый и MVC путь!

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