Переход между разными «слоями» в UINavigationController - PullRequest
0 голосов
/ 30 января 2012

Я столкнулся с небольшой проблемой с навигационными контроллерами. Я установил навигационный контроллер с двумя «ветками». Как aviewController1> aViewController2> aviewController3, а другая ветвь - biewController1> bviewController2. Теперь я хотел бы иметь возможность перейти от текущей позиции к нижней (первый вид) другой ветви (например, aviewController3> bviewController1 и т. Д.). Очевидно, что простой [self.navigationController addSubview:someview.view] не справится с этой задачей, поскольку он только выведет меня на это представление и все равно сохранит текущий счетчик стека навигационного контроллера. Могу ли я получить некоторые идеи о том, как это сделать?

Ответы [ 2 ]

2 голосов
/ 30 января 2012

Вы можете добавить несколько стеков, просто вызывая pop несколько раз.Если вы сделаете все popViewController: animated: вызовы с анимированным значением, установленным на NO, это должно быть бесшовным.

В качестве альтернативы, у контроллера навигации есть setViewControllers: animated: метод, который позволяет вам менять весь стек на другой набор.контроллеров зрения.Используя это, вы можете скопировать существующий стек контроллера представления в изменяемый массив, удалить ненужные, добавить те, которые вы делаете, и затем за один раз заменить старый стек новым новым.

1 голос
/ 30 января 2012

Поскольку навигационный контроллер в основном является стеком, безопасный способ сделать это - просто нажать a3, pop a2, pop a1 и затем нажать b1.

если ветвь является вашим корневым контроллером, то вы можете ускорить его, выполнив поп-корень контроллер

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