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

问题描述

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

我知道对此有很多解释和教程(例如 hackingwithswift.com 上的此处:https://www.hackingwithswift.com/quick-start/swiftui/how-to-use-environmentobject-to-share-data-between-views

但是,根据我目前的理解,这些教程的全部内容似乎都使用了“场景委托”,而这在 Xcode 12 中并不存在。

因此,我在如何/在何处放置环境对象在我的应用程序环境中以及如何将其连接到我的内容视图/其他视图方面苦苦挣扎。

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

class UserSettings: ObservableObject {
@Published var score = 0
}

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

解决方法

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

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

    var body: some Scene {
        WindowGroup {
           ContentView().environmentObject(userSettings)
        }
    }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...