在Swift应用程序中,我想创建一个类来保存可以在多个SwiftUI视图中更新和显示的数据

gcuhipw9  于 5个月前  发布在  Swift
关注(0)|答案(1)|浏览(75)

这是类:

class DataManager {
    static let shared = DataManager()

    var data: String = "Initial"
        
    private init() {}

    func updateData(newData: String) {
        self.data = newData
    }
}

let sharedManager = DataManager.shared

字符串
我根据一个视图中的onTapGesture更新该视图中的data属性:

sharedManager.updateData(newData: "New")


当我在该视图中检查sharedManager.data的值时,它被更新了。
但是当我在不同的视图中查看sharedManager.data时,它没有更新。我如何更新代码以使其按预期工作:在一个视图中更新类示例的属性,在另一个视图中显示更新?

zu0ti5jz

zu0ti5jz1#

SwiftUI可能不会更新其他视图,因为您的类未设置为观察。
尝试添加@Observable宏:

@Observable
class DataManager {
...

字符串

相关问题