У меня возникла небольшая проблема с навигационными контроллерами. Я настроил контроллер навигации с 2 «ветвями». Как и aviewController1> aViewController2> aviewController3, а другая ветвь - biewController1> bviewController2. Теперь мне хотелось бы иметь возможность перейти от текущей позиции к нижней (первый вид) другой ветви (например, aviewController3> bviewController1 и т. Д.). Очевидно, что простой [self.navigationController addSubview:someview.view]
не будет выполнять задание, так как он приведет меня только к этому виду и сохранит текущий стек стека контроллера. Могу ли я получить некоторые идеи о том, как это сделать?Прыжки между разными слоями в UINavigationController
ответ
popto Root Вы можете хлопнуть несколько стеков просто вызывая поп несколько раз. Если вы сделаете все popViewController: анимированные: вызовы с анимированным набором в НЕТ, он должен быть плавным.
В качестве альтернативы навигационный контроллер имеет метод setViewControllers: анимированный: который позволяет вам обменивать весь стек на другой набор контроллеров. Используя это, вы можете скопировать существующий стек контроллера вида в изменяемый массив, удалить те, которые вы не хотите, добавить те, которые вы делаете, а затем заменить старый стек новым стеком за один раз.
Поскольку контроллер навигации в основном представляет собой стек, безопасный способ сделать это - просто поп-а3, поп-а2, поп-а1, а затем нажать b1.
если ветвь корневой контроллер, то вы можете ускорить его, делая контроллер
Глупый вопрос, но как я могу поместить несколько стеков одновременно? –
Если вы не дойдете до корневого контроллера, я бы просто выложил их по одному за раз. –
Мне не нужно будет спускаться к корневому контроллеру, чтобы это работало. Но почему-то, когда я вызываю pop несколько раз, кажется, что только pop 1 stack. Я называю это нажатием кнопки UIActionSheet, может ли это вызвать проблемы? –
- 1. Передача бинов между разными слоями
- 2. Название столкновения между слоями
- 3. Обнаружение столкновений между слоями
- 4. Копирование моделей между слоями
- 5. Прыжки между XML-тегами
- 6. Cocos2D - Общение между слоями
- 7. Связь между слоями в приложении
- 8. Настройка инверсии зависимостей между слоями
- 9. Синхронизирующие значения валидации между слоями
- 10. Транзакция между несколькими слоями DAO?
- 11. Как остановить смешение между слоями?
- 12. Javascript - прыжки между браузерами Вкладки
- 13. CartoDB: Переключение кнопок между слоями
- 14. Konva Продвигайте события между слоями
- 15. StoryBoard - UITabBarController + UINavigationController - прыжки с одного навигационного контроллера к другим
- 16. Обнаружение столкновений между слоями в Cocos2d?
- 17. pass socketio между слоями в express4
- 18. Переключение между слоями в листке тепловой карты
- 19. Сопряженная корреляция между растровыми слоями в R
- 20. В чем разница между слоями и уровнями?
- 21. Прыжки между видами в навигационном контроллере
- 22. Прыжки между двумя строками в Sublime Text
- 23. Прыжки между sub SMs в boost :: msm
- 24. Перемещение между двумя UINavigationController
- 25. Разница между слоями и трубами и фильтрами?
- 26. эффективно проходит уведомление между развязанным дизайном слоями
- 27. стека ZigBee - связь между различными слоями
- 28. Связь между несколькими слоями вложенных директив
- 29. Обнаружение столкновений между слоями изображений и фигурами
- 30. Cocos2d-x получение данных между слоями
Я попытался позвонить [self.navigationController popViewControllerAnimated: NO]; несколько раз друг за другом, но только первый стек get's poped. Так вы правильно это понимаете? –
Вы вызываете это из одного из контроллеров? Если это не будет работать более одного раза, поскольку после того, как вы вытащили контроллер вида, с которого вы сейчас звоните, self.navigationController будет равен нулю, потому что этот viewController больше не находится в стеке навигации. Вам нужно получить ссылку на navigationController и сохранить его в переменной, после чего вы можете поместить его несколько раз. например UINavigationController * controller = self.navigationController; [контроллер popViewControllerAnimated: NO]; [контроллер popViewControllerAnimated: NO]; и т.д... –