раскрутить переход против popViewControllerAnimated

У меня есть представление карты, которое подключено к нескольким viewControllers.

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

self.navigationController?.popViewControllerAnimated(true)

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


person zevij    schedule 09.02.2016    source источник


Ответы (1)


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

Но подумайте о случае, когда есть UINavigationControllers A,B,C, а затем RootViewController R

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

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

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

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

person Anish Parajuli 웃    schedule 10.02.2016