1

У меня есть текущие настройки, где -> является модальным представлением (presentViewController()):Отвергая родительский вид контроллера двойного модально представлены контроллера представления

ViewController A -> NavigationController B: 
    ViewController C 
    ViewController D -> ViewController E 

Я в настоящее время внутри ViewController E. Я хотел бы уволить всех представленных в данный момент контроллеров представлений, чтобы вернуться к ViewController A. Кажется, что все, что я примерить ViewController E, (dismissViewController() с self, parentViewController, presentViewController, navigationController) Я легко может уволить ViewController E, но не может уволить ViewController B и все его просмотра суб контроллеров. Мне кажется, что я потерял все ссылки на него еще, когда ViewController E уволен, ViewController D (суб вид контроллера контроллера навигации NavigationController B) еще видна.

Любая помощь, чтобы отклонить как ViewController E и NavigationController B и все его суб вид авиадиспетчеров очень высоко.

+0

Вы используете раскадровки? – barndog

+0

Да. Все контроллеры представлений, о которых я упоминал, являются контроллерами представлений в Главной раскадровке – Acoop

+0

Проверьте мой ответ, это должно помочь. – barndog

ответ

1

что вы ищете называется размотки Segue. Я не знаю ни одного способа сделать это за пределами раскадровки, но по существу вы бы установить разматывания SEGUE из ViewControllerE в ViewControllerA а затем, когда в E выполните выполнить так, как обычно: self.performSegue('UnwindSegue', sender: self)

This - довольно хорошая статья по всей теме. По существу, происходит то, что стек контроллера просмотра разворачивается полностью до точки выхода разматывания после его срабатывания, поэтому вы можете перейти от E к A без проблем. Вы также можете иметь несколько разворачивать сеансы через приложение, просто удостоверьтесь, что даете им идентификаторы.

Это действительно полезно в таких сценариях, как logout, где пользователь может иметь пять или шесть контроллеров представления, но ваше приложение имеет боковое меню, которое они могут использовать для выхода из системы в любой момент. Вы можете просто расслабиться до первого контроллера.