【发布时间】:2019-05-23 17:15:10
【问题描述】:
我的应用有一个导航控制器,其中第一个视图控制器是登录屏幕,所有其他屏幕都被推到顶部。
每当对后端的任何 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()
}
}
有可能做这样的事情吗?
【问题讨论】:
-
有可能,我过去也这样做过。我不记得怎么了:P
标签: ios swift uistoryboardsegue