UINavigationController идет прямо к следующему контроллеру? - PullRequest
0 голосов
/ 21 июня 2010

У меня есть UINavigationController с 3 уровнями иерархии: Меню-> Подменю-> Детали.Меню и подменю - это UITableView, тогда как Details - это некоторый пользовательский контроллер представления.

Я хочу добавить кнопки «предыдущий» и «следующий» в представлении «Подробности», которые позволят мне напрямую перейти к предыдущему и следующему элементам изтекущее подменю.

Например, допустим, у меня есть:

|Menu    |M1 Submenu |SM2 Details
--------------------------------
M1  ->   |SM1        |D1
M2       |SM2   ->   |D2
M3       |SM3        |D3  // Let's say we are here now
                     |D4
// ... etc ...

// The arrows represent items the user selected

Итак, предположим, что приложение в настоящее время показывает контроллер представления D3 Details.Это означает, что мы в настоящее время находимся в M1-> SM2-> D3.Теперь в D3, если пользователь нажимает кнопку «Далее», он должен показывать D4.Точно так же, если он / она нажимает кнопку «предыдущий», он должен показывать D2.

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

Что будет лучшим способом?реализовать это?Должен ли я вернуться в подменю и затем нажать другой контроллер Details?Вызвать ли контроллер подменю напрямую из контроллера представления сведений (если да, то как)?

Спасибо.

1 Ответ

0 голосов
/ 21 июня 2010

Нет необходимости вызывать родительский контроллер. Вот что вы можете сделать:

Предполагая, что вы храните массив элементов подробностей в Контроллере подменю, вместо инициализации контроллера подробностей с выбранным элементом, инициализируйте его с массивом и выбранным индексом.

Затем, когда нажата предыдущая / следующая кнопки, измените выбранный индекс и соответственно обновите вид.

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