1. ホーム
  2. スイフト

[解決済み】解決方法。iOS 13.0で'keyWindow'が非推奨になりました。

2022-04-01 01:20:35

質問

Core DataをCloud Kitで使用しており、アプリケーション起動時にiCloudユーザーのステータスをチェックする必要があります。問題が発生した場合、ユーザーにダイアログを発行したいのですが、それには UIApplication.shared.keyWindow?.rootViewController?.present(...) これまで

Xcode 11 beta 4 では、新しい deprecation メッセージが表示され、私に教えてくれました。

'keyWindow' は iOS 13.0 で非推奨となりました。複数のシーンをサポートするアプリケーションでは使用しないでください。

代わりにどのようにダイアログを見せようか?

どのように解決するのですか?

これが私の解決策です。

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

使用方法など。

keyWindow?.endEditing(true)