MVVM并将最佳值传递给viewModel



我正试图获得一个MVVM方法为我的swiftui应用程序工作,但我有一个问题,其中一个可选变量似乎没有得到传递正确。

在主视图中你可以点击"new"或者"编辑",在编辑时,我想传递这个值,这个屏幕的代码:按钮:

Button {
selectedTag = tag
isShowingEdit.toggle()
} label: {
Image(systemName: "pencil")
.font(Font.system(size: 30, weight: .bold))
.foregroundColor(.gray)
}

Navigationlink:

NavigationLink(destination: TagsCreatingView(viewModel: TagCreateViewModel(tag: selectedTag)), isActive: $isShowingEdit) { EmptyView() }

TagCreateViewModel init如下所示:

init(tag: TagMO?) {
if let tag = tag {
self.tag = tag
title = tag.title
selectedColor = Int(tag.color)
}

如果我在selectedTag上打印,当我点击按钮时,它有正确的值,但在viewModel中,它将是nil。此外,如果我点击编辑按钮两次,它按计划工作,标签不是nil(两次我的意思是点击编辑,在另一个屏幕上点击取消,然后再次编辑…)

问题是在目标视图中有

@StateObject var viewModel: TagCreateViewModel

将其更改为@ObservedObject var viewModel: TagCreateViewModel

解决了这个问题,因为所有权是正确的:9

相关内容

  • 没有找到相关文章

最新更新