在大约两周前去度假之前,我已经在SwiftUI中创建了几个很好的项目。当我回来时,我更新了Xcode和我的iPhone。
SwiftUI的代码无关紧要,因为它之前都工作得很好。我在多个测试项目中得到的只是一个纯黑屏幕。
在更新Xcode和我的设备之前,当我的所有项目工作时,是什么导致我的所有项目仅显示黑屏?
版本:

最佳答案

SceneDelegate.swift替换

let window = UIWindow(frame: UIScreen.main.bounds)
window.rootViewController = UIHostingController(rootView: ContentView())
self.window = window
window.makeKeyAndVisible()


if let windowScene = scene as? UIWindowScene {
    let window = UIWindow(windowScene: windowScene)
    window.rootViewController = UIHostingController(rootView: ContentView())
    self.window = window
    window.makeKeyAndVisible()
}

如果您最初在.environtmentObject上附加了ContentView(),请不要忘记在上述代码中将其添加到ContentView()上。

当您在Xcode beta 4中创建新项目时,我发布的第二个代码块是SceneDelegate.swift中自动生成的代码。我发布的第一个代码块是beta 4之前所有版本中自动生成的代码。正如您在第二个块中看到的那样,现在使用scene函数SceneDelegate提供的scene(scene:, session:, connectionOptions:)而不是CGRect(UIScreen.main.bounds)来初始化窗口。

关于ios - SwiftUI仅显示黑屏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57205114/

10-11 15:47