在父级SwiftUI视图中,要知道内部视图ViewModel中的void方法的状态何时发生变化,可以通过使用@State或@Binding属性包装器来实现。
@State private var isStateChanged = false
class ViewModel: ObservableObject {
func updateState() {
// 更新状态变量
isStateChanged = true
}
}
struct ParentView: View {
@State private var isStateChanged = false
@ObservedObject private var viewModel = ViewModel()
var body: some View {
ChildView(isStateChanged: $isStateChanged, viewModel: viewModel)
}
}
struct ChildView: View {
@Binding var isStateChanged: Bool
@ObservedObject var viewModel: ViewModel
var body: some View {
// 在视图中使用状态变量
Text(isStateChanged ? "State changed" : "State not changed")
}
}
这样,当内部视图的ViewModel中的void方法更新状态变量时,父级视图中的状态变量也会相应地更新。然后,您可以在父级视图中根据状态变量的变化来执行其他操作。
请注意,这里的示例代码仅用于说明概念,并不包含完整的实现。实际使用时,您可能需要根据具体情况进行适当的调整和扩展。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云