首页 > 解决方案 > 在 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

请帮助我应该如何调用方法。谢谢你的帮助。

标签: iosswiftswiftui

解决方案


如果您想知道视图何时被关闭,您可以观察到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
}

推荐阅读