Расслабьтесь Segue против PopViewControllerAnimated

У меня есть mapview, который связан с несколькими viewControllers.

Мне нужно было реализовать "раскрутку" с другой кнопки (в отличие от только кнопки "назад"), поэтому я использовал:

self.navigationController?.popViewControllerAnimated(true)

Мой вопрос: как работает вышесказанное, стоит ли мне пытаться реализовать раскрутку в коде, используя prepareForUnwind а также canPerformUnwindSegueAction в родительском контроллере представления + Ctrl-перетаскивание из viewController для выхода в раскадровку? Если так, то почему?

1 ответ

Решение

В основном, если вы просто dimissing представленный UIViewController или совать UIViewController из стека навигации вам не нужно использовать сегменты раскручивания, хотя он делает то же самое для вас.

Но подумайте о случае, когда есть UINavigationControllers А, В, С, а затем RootViewController р

Тогда придумайте условие

 (Present) R -> A
 (Push) AR -> XVController
 (Push)XVController -> B
 (Present)BR-> YVContoller
...and so on..

Теперь, если вы хотите вернуться к YVController, к вашему проекту RootViewController, где вы только что начали. popToRootViewController выскакивает в стек навигации B UINavigationController. Теперь, что вы делаете.. Используйте делегат или измените окно RootViewController, что не очень хорошая идея.

Таким образом, вам нужно использовать раскрутку, чтобы преодолеть это.. Пример проекта, чтобы продемонстрировать возможности его использования..

Другие вопросы по тегам