swiftui - 如何从我的 ObservableObject 类调用我的 View 结构中的方法
问题描述
我将 @ObservedObject PropertyWrapper 用于我的 Picker 选择,并且我想在选择更改时在我的 View 结构中调用一个方法。我怎样才能做到这一点?
可观察对象代码:
class SphereModel: ObservableObject {
@Published var selection = -3 {
didSet {
// Call method (getAD()) here
}
}
}
查看代码:
struct ContentView: View {
@ObservedObject var sphereModel = SphereModel()
var body: some View {
Picker("Sphere Thickness", selection: $sphereModel.selection) {
ForEach((-24..<1).reversed(), id: \.self) {
Text(String(format: "%.1f", Double($0) / 2)).tag($0)
}
}
}
// Method to call
func getAD() {
}
}
我怎么做?谢谢!
解决方案
您可以onReceive
直接在您的视图中使用:
class SphereModel: ObservableObject {
@Published var selection = -3
}
struct ContentView: View {
@ObservedObject var sphereModel = SphereModel()
var body: some View {
Picker("Sphere Thickness", selection: $sphereModel.selection) {
ForEach((-24 ..< 1).reversed(), id: \.self) {
Text(String(format: "%.1f", Double($0) / 2)).tag($0)
}
}
.onReceive(sphereModel.$selection) { selection in
print(selection)
getAD()
}
}
func getAD() {
print("getAD")
}
}
推荐阅读
- jupyter-notebook - 错误 zsh: abort jupyter notebook(尝试在命令行上运行 jupyter notebook 时)
- vue.js - vue-google-charts 错误 n.load 不是函数
- spring-boot - 如何在 lucene 查询中匹配数值和布尔值
- javascript - 有没有办法在浏览器 javascript 中执行或模拟忙/等待样式输入?
- c++ - 客户端 C++ 程序的分段错误
- powershell - 从数字列表构建表达式
- python - 返回类而不改变任何东西
- javascript - json-editor 忽略起始值
- html - 获取动态填充下拉列表的旧选定值
- java - 如何生成唯一值数组