我正在将Core Data和Cloud Kit一起使用,因此必须在应用程序启动期间检查iCloud用户状态。如果出现问题,我想向用户发出一个对话框,直到现在我都使用UIApplication.shared.keyWindow?.rootViewController?.present(...)进行。

在Xcode 11 beta 4中,现在有一条新的弃用消息,告诉我:


  “keyWindow”在IOS 13.0中弃用:不应该被用于支持多个场景的应用,因为它在所有连接的场景返回键窗口


我该如何显示对话框?

最佳答案

这是我的解决方案:

let keyWindow = UIApplication.shared.connectedScenes
        .filter({$0.activationState == .foregroundActive})
        .map({$0 as? UIWindowScene})
        .compactMap({$0})
        .first?.windows
        .filter({$0.isKeyWindow}).first


用法,例如:

keyWindow?.endEditing(true)

关于uikit - 如何解决:iOS 13.0中不推荐使用“keyWindow”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58241234/

10-13 06:59