【问题标题】:Watch changes on Singleton Class观看 Singleton Class 的变化
【发布时间】:2021-02-26 21:39:17
【问题描述】:

我有一个 Singleton 类,我希望它反映它对任何视图的更改。

如何从视图中调用类以便能够观察更改?正确的方法是什么?

exampleView.Swift

struct exampleView: View {
     var status: Bool = PerixViewModel.shared.isAccepted
     var body: some View {
       Text("\(status)")
        }
    }
            

单例类;

class PerixViewModel: NSObject, ObservableObject {
    static let shared = PerixViewModel()
    @Published var isAccepted: Bool = false
}

【问题讨论】:

  • 您的属性已发布,因此您可以在 SwiftUI 中将其标记为 @ObservedObject,或者您可以订阅在 SwiftUI 之外为 isAccepted 公开的发布者。

标签: ios swiftui


【解决方案1】:

用途:

@ObservedObject var status = PerixViewModel.shared

然后使用status.isAccepted 获取值。

【讨论】:

  • 是的,这个可行,也许@StateObject 更适合它。但是有没有另一种更好的解决方案呢?是否应该始终按照您所写的方式调用它?@Paulw11
猜你喜欢
  • 2018-12-19
  • 2019-11-16
  • 1970-01-01
  • 1970-01-01
  • 2017-05-24
  • 2022-07-27
  • 2021-09-30
  • 2021-05-05
  • 2021-04-27
相关资源
最近更新 更多