SwiftUI:在 Xcode 12/iOS 14 中使用环境对象(--> 如何/在环境中放置对象?)

Mal*_*ito 3 swiftui environmentobject ios14 xcode12

在编写我的第一个 iOS 应用程序的过程中,我遇到了一个新问题,到目前为止我无法找到解决方案:我想使用环境对象将信息传递到各种视图。

我知道对此有很多解释和教程(例如,在 hackingwithswift.com 上:https://www.hackingwithswift.com/quick-start/swiftui/how-to-use-environmentobject-to-share-data- Between-意见

然而,所有这些教程似乎都在使用“场景委托”,根据我目前的理解,Xcode 12 中不存在这种委托。

因此,我正在努力解决如何/在哪里放置环境对象在我的应用程序环境中以及如何将其连接到我的内容视图/其他视图。

这段代码应该放在哪里?它会进入内容视图吗?

class UserSettings: ObservableObject {
@Published var score = 0
}
Run Code Online (Sandbox Code Playgroud)

有人能帮忙解决这个问题吗?我会很感激 :)

Asp*_*eri 5

您可以在窗口组的场景中创建并注入它,例如

@main
struct MyApp: App {
    @StateObject var userSettings = UserSettings()

    var body: some Scene {
        WindowGroup {
           ContentView().environmentObject(userSettings)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)