SwiftUI Beta 3 Black Screen - PullRequest
       12

SwiftUI Beta 3 Black Screen

8 голосов
/ 03 июля 2019

Я только что перешел на бета-версию 3, и мой ранее работающий код SwiftUI теперь отображает простой черный экран. Было ли изменение в бета-версии 3, что является причиной этого. Есть ли решение, чтобы это исправить?

Код делегата сцены:

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
        // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
        // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).

        // Use a UIHostingController as window root view controller


    let window = UIWindow(frame: UIScreen.main.bounds)


     window.rootViewController = UIHostingController(rootView: ContentView())
     self.window = window
     window.makeKeyAndVisible()

    }

1 Ответ

15 голосов
/ 03 июля 2019

Бета-версия 3 Рабочая версия сцены Delgate:

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
    // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
    // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).

    // Use a UIHostingController as window root view controller
    if let windowScene = scene as? UIWindowScene {
        let window = UIWindow(windowScene: windowScene)
        window.rootViewController = UIHostingController(rootView: ContentView())
        self.window = window
        window.makeKeyAndVisible()
    }
}

Кредит в сообщение Reddit для ответа.


Для уточнения, бета 1использовал UIWindow(frame: ...), который теперь изменился на UIWindow(windowScene: ...).Переданный параметр теперь является текущей сценой и приведен к типу UIWindowScene.

...