如何解决我如何在不同的时间将不同的表单填充到一个变量中?
我想选择将5种不同形式中的1种传递给另一个视图的变量。我面临的问题是要使传递的表单变量成为哪种数据类型(在这种情况下为“表单”)。有没有一种方法可以让多个具有相同数据类型的表单结构?
CustomForm结构
struct CustomForm: View {
@State private var field1: String = ""
@State private var field2: String = ""
var body: some View {
Form {
TextField("Field 1",text: $field1)
TextField("Field 2",text: $field2)
}
}
}
填充表格的测试视图
struct Test: View {
@State private var form: CustomForm = CustomForm()
var body: some View {
self.form
}
}
我这里使用的是一种表格,效果很好。如何将变量form
的值更改为其他表单视图?
解决方法
有一些方法可以做您想要的事情,其中之一:
您可以使用AnyView
删除视图类型。
例如,如果您有一个表单:
Form {
// form content here
}
您可以将其分配给变量:
let form1 = Form {
// form content here
}
然后您可以将其添加到AnyView
s上的数组中:
var arrayOfForms: [AnyView] = [
AnyView(form1),AnyView(form2),AnyView(form3),AnyView(form4)
]
然后选择并显示适当的视图
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。