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

标签 swiftui ios14 xcode12 environmentobject

<分区>

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

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

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

因此,我苦苦思索如何/在何处放置一个环境对象到我的应用程序环境中,以及如何将它连接到我的内容 View /其他 View 。

将此代码片段放在哪里?它是否进入内容 View ?

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

有人能帮忙解决这个问题吗?我将不胜感激:)

最佳答案

你可以在窗口组的场景中创建和注入(inject)它,比如

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

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

关于SwiftUI:在 Xcode 12/iOS 14 中使用环境对象(--> 如何/在何处将对象放置在环境中?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65663443/

相关文章:

ios - SceneKit 不会在 Xcode 12 中填满屏幕

iOS 14.2 Beta - AVPlayer 无法播放

ios - 模块未在库演化支持下编译;使用它意味着无法保证二进制兼容性

在 MacOS 中使用 NSSharingServicePicker 的 SwiftUI

ios - SwiftUI · 后台计时器在模拟器上有效,但在真实设备上无效

swift - 如何为现有项目创建 App Clip iOS 14

ios - 为什么当附加到 nil 图像时,帧修饰符仍然会影响其他 View ?

SwiftUI - 解开可选的图像数据以基于 UIImage(data) 创建图像

swiftui - 刷新 SwiftUI 列表

ios - 如何修复 iOS14 后未显示的 UITextField 背景图像?