единственная функция для закрытия всех контроллеров открытого вида
У меня есть приложение, которое представляет собой одно приложение просмотра. У меня есть контроллер навигации, связанный со всеми дочерними контроллерами из корневого контроллера представления.
В каждом дочернем контроллере у меня есть кнопка выхода из системы. Мне интересно, могу ли я иметь единственную функцию, которую я могу вызвать, которая отклонит все контроллеры, которые были открыты по пути, независимо от того, какой контроллер был открыт в данный момент, когда пользователь нажимает кнопку выхода?
Мой основной старт:
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
})
}
Будет ли это лучший способ достичь того, что я после?