首页 > 解决方案 > 关闭视图控制器在帮助类 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)
    }

标签: iosswift

解决方案


你所做的一切

UIViewController().dismiss

正在创建一个新的视图控制器并将其关闭。您必须在实际呈现的 View 控制器实例上调用dismiss。


推荐阅读