在大约两周前去度假之前,我已经在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/