ios - 在 SwiftUI 中关闭工作表时如何从另一个 viewModel 调用方法?
问题描述
我有视图和视图模型。我正在从视图导航到工作表并做一些事情并将其关闭,一旦我关闭工作表,我想在 viewModel 中调用一个方法。
在FirstView呈现表中
.sheet(isPresented: $showAddView) {
AddView(viewModel: AddViewModel(showAddView: $showAddView))
}
在FirstViewModel我想调用工作表上的方法
func update() {
print("I get called")
//some logic
}
在操作表AddView
doing some logic and dismissing
请帮助我应该如何调用方法。谢谢你的帮助。
解决方案
如果您想知道视图何时被关闭,您可以观察到showAddView
如下变化:
.sheet(isPresented: $showAddView) {
AddView(viewModel: AddViewModel(showAddView: $showAddView))
}
.onChange(of: showAddView) { newValue
guard !newValue else { return }
// Will be executed when newValue changes to false
// I think it will also be called the first time your view is loaded
}
推荐阅读
- python - 使用 heap.rotator.Rotator.rotate_map 旋转天空贴图时出现“错误的像素数”类型错误
- javascript - 在渲染函数中定义的return内部调用react映射中的函数
- powershell - 在powershell上运行.ps1文件:IP地址连接
- php - 对 SQL 表中的 x 到 x+n 列求和
- webpack - Webpack Uglify:保留一定的 console.logs
- c# - 将标签居中放入表单
- c# - 如何使用 64 位 MSBuild 构建 ac# 解决方案?
- java - 为 64 位编译 Hadoop 时出现 Maven 异常
- css - 如何在 CSS 中制作点渐变效果
- c++ - 如何将一组近点聚类为单点?