ios - 关闭视图控制器在帮助类 Swift 中不起作用
问题描述
所以我有一个助手类,如下所示:
class Helper {
static func handleTokenInvalid() {
DispatchQueue.main.async {
UIViewController().dismiss()
}
}
}
extension UIViewController {
func dismiss() {
let root = UIApplication.shared.keyWindow?.rootViewController
root?.dismiss(animated: true, completion: nil) }
}
我想关闭所有打开并返回到应用程序根目录的视图控制器。但是它不起作用。如果我在普通视图控制器中做同样的事情是可行的。有人知道解决方案吗?谢谢!
编辑:我也已经尝试过了,但它说在包装可选值时发现 nil 。
func dismiss() {
self.view.window!.rootViewController?.dismiss(animated: true, completion: nil)
}
解决方案
你所做的一切
UIViewController().dismiss
正在创建一个新的视图控制器并将其关闭。您必须在实际呈现的 View 控制器实例上调用dismiss。
推荐阅读
- selenium - 空手道和硒进入同一个测试自动化框架
- reactjs - 如何使用选项卡在路由页面之间存储输入值
- postman - 邮递员:如何设置我的邮递员使用“pm”而不是“postman”
- javascript - Google Closure Compiler 在 let 声明中使用 JSC_CONSTANT_REASSIGNED_VALUE_ERROR 发出警告
- php - 尝试从 JSON 文件中删除值
- ionic-framework - 构建时platform.registerBackButtonAction()不起作用--prod
- php - 我在获取插入多个下拉值时遇到问题。提交后出现数据库错误
- java - 无法将 Synthetica 外观添加到我的 java 项目
- jenkins - Jenkins 管道失败且没有错误
- scala - 未找到模块:org.scala-sbt#sbt;1.1.6