Мое приложение имеет контроллер навигации, где первый контроллер представления является экраном входа в систему, а все остальные экраны помещаются сверху.
Я бы хотел вернуться к экрану входа в систему, когда любой http-запрос к бэкэнду возвращает ошибку 401.
Я хотел добавить расширение к классу ViewController примерно так:
extension UIViewController {
func unwindToLoginScreen() {
performSegue(withIdentifier: loginScreen)
}
}
И это было бы разве что. Затем, когда запрос не выполняется, я вызываю метод контроллера вида unwindToLoginScreen
.
Однако проблема с этим подходом состоит в том, что я должен был бы помнить, что нужно создать упомянутые сегменты раскручивания на раскадровке для всех новых контроллеров представления, которые я добавил в проект.
До сих пор я думаю, что идеальным планом было бы иметь возможность создавать программу раскрутки программно, а не использовать раскадровку. Таким образом, мой метод расширения unwindToLoginScreen()
будет работать в любом новом контроллере представления по умолчанию. Что-то вроде:
extension UIViewController {
func unwindToLoginScreen() {
let segue = UnwindSegue(identifier: "blablah", segue: LoginViewController.unwindToLoginViewController)
segue.perform()
}
}
Можно ли сделать что-то подобное?