ios - 关闭 View Controller 在帮助器类 Swift 中不起作用

标签 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)    }
}

我想关闭所有打开的 View Controller 并返回到应用程序的根目录。然而它不起作用。如果我在普通 View Controller 中做同样的事情是可行的。有人知道解决办法吗?谢谢!

编辑: 我也已经尝试过这个,但它说在包装可选值时发现 nil。

func dismiss() {
        self.view.window!.rootViewController?.dismiss(animated: true, completion: nil)
    }

最佳答案

你所做的一切

UIViewController().dismiss

正在创建一个新的 View Controller 并将其关闭。 您必须对实际呈现的 View Controller 实例调用解雇。

关于ios - 关闭 View Controller 在帮助器类 Swift 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54884378/

相关文章:

ios - 如何查找ios xcode中的内存泄漏?

ios - LazyVGrid 中的 SwiftUI 中心项目

ios - RestKit RKAttributeMapping fromKeyPath 存档错误

swift - 在 Swift 3 中转换图像

ios - ScaleMode 根本不起作用

ios - Xcode 的多个副本 - 针对旧版本的 iOS 测试代码

ios - 台风与单例 AppDelegate

objective-c - 显示错误的当前时间

ios - 在 iOS swift 中音乐结束时播放下一首歌曲

ios - 如何在通过 Facebook 身份验证访问的多个 iOS 设备上保存数据?