0

我正在使用通过按钮触发的以下代码在我的应用程序中显示共享表:

    func shareSheet() {
           guard let urlShare = URL(string: "https://google.com") else { return }
           let activityVC = UIActivityViewController(activityItems: [urlShare], applicationActivities: nil)
           UIApplication.shared.windows.first?.rootViewController?.present(activityVC, animated: true, completion: nil)
       }

此代码提出警告:

'windows' 在 iOS 15.0 中已弃用:在相关窗口场景上使用 UIWindowScene.windows

我不明白我怎么能摆脱它。已经检查过此处建议的方法如何使用 AdMob 横幅摆脱消息“'windows' 在 iOS 15.0 中已弃用:在相关窗口场景上使用 UIWindowScene.windows 代替”?但它不起作用。有什么想法可以绕过警告吗?

非常感谢!

4

1 回答 1

1

您可以使用以下作为UIApplication.shared.currentUIWindow()?.rootViewController

public extension UIApplication {
    func currentUIWindow() -> UIWindow? {
        let connectedScenes = UIApplication.shared.connectedScenes
            .filter({
                $0.activationState == .foregroundActive})
            .compactMap({$0 as? UIWindowScene})
        
        let window = connectedScenes.first?
            .windows
            .first { $0.isKeyWindow }

        return window
        
    }
}
于 2021-12-10T11:24:57.483 回答