единственная функция для закрытия всех контроллеров открытого вида

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

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

Мой основной старт:

func tryLogout(){
     self.dismissViewControllerAnimated(true, completion: nil)
     let navigationController = UINavigationController(rootViewController: UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("LoginViewController") )
     self.presentViewController(navigationController, animated: true, completion: nil)
}

Я ищу наиболее эффективный способ памяти для выполнения этой задачи. Я помещу свою функцию выхода из системы в отдельный файл утилит, но тогда я не смогу использовать self. И у меня все еще есть проблема знания динамических увольнений контроллеров.

Обновить Поп к корневому представлению контроллера было предложено. Итак, моя попытка что-то вроде:

func tryLogout(ViewController : UIViewController){
     print("do something")
     dispatch_async(dispatch_get_main_queue(), {
         ViewController.navigationController?.popToRootViewControllerAnimated(true)
         return
     })
 }

Будет ли это лучший способ достичь того, что я после?

Ответы на вопрос(6)

Ваш ответ на вопрос