大约两周前去度假之前,我在 SwiftUI 中创建了一些非常好的项目。当我回来后,我更新了 Xcode 和我的 iPhone。
SwiftUI 的代码不相关,因为它之前工作得很好。我在多个测试项目中得到的只是一个纯黑的屏幕。
当我的所有项目在更新 Xcode 和我的设备之前运行时,是什么导致它们只是显示黑屏?
版本:
My device - 13.0 beta 4
Simulators don't work - not sure on versions
Xcode-beta - 11.0 beta 4 (11M374r)
最佳答案
在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 之前的所有版本中自动生成的。正如您在第二个代码块中看到的,窗口现在使用 SceneDelegate 提供的
函数 scene
进行初始化scene(scene:, session:, connectionOptions:)
而不是 CGRect
(UIScreen.main.bounds
)。
关于ios - SwiftUI 仅显示黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57205114/