SwiftUI仅显示黑屏

时间:2019-07-25 15:05:13

标签: ios xcode ios-simulator swiftui

在大约两周前去度假之前,我已经在SwiftUI中创建了几个很好的项目。当我回来时,我更新了Xcode和我的iPhone。

SwiftUI的代码无关紧要,因为它之前都工作得很好。我在多个经过测试的项目上得到的只是纯黑屏幕。

是什么原因导致我的所有项目在更新Xcode和我的设备之前工作时仅显示黑屏?

版本:

  

我的设备-13.0 beta 4

     

模拟器不起作用-不确定版本

     

Xcode-beta-11.0 beta 4(11M374r)

4 个答案:

答案 0 :(得分:2)

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 { {1}}而不是scene(scene:, session:, connectionOptions:)CGRect)。

答案 1 :(得分:2)

此外,如果上述建议不起作用,请确保您的 SceneDelegate 中有正确的指向 Info.plist 的指针。

Info.plist

答案 2 :(得分:0)

尝试重新安装Xcode并查看此link从Xcode beta 3迁移到Xcode beta 4

答案 3 :(得分:0)

从beta 3升级到4之后,我也遇到了这个问题。我在beta 4中创建了一个新项目,并复制了旧项目中的所有内容,并且一切正常。