Cloud KitでCore Dataを使用しているため、アプリケーションの起動時にiCloudユーザーのステータスを確認する必要があります。問題が発生した場合は、ユーザーにダイアログを発行したいと思います。これまではUIApplication.shared.keyWindow?.rootViewController?.present(...)
を使用して行います。
Xcode 11ベータ4では、新しい非推奨メッセージが次のように表示されます。
'keyWindow'はiOS 13.0で廃止されました:複数のシーンをサポートするアプリケーションには使用しないでください。接続されているすべてのシーンでキーウィンドウが返されます。
代わりにダイアログをどのように提示しますか?
berni の回答に触発されました
let keyWindow = Array(UIApplication.shared.connectedScenes)
.compactMap { $0 as? UIWindowScene }
.flatMap { $0.windows }
.first(where: { $0.isKeyWindow })
それで試してください:
UIApplication.shared.windows.filter { $0.isKeyWindow }.first?.rootViewController!.present(alert, animated: true, completion: nil)