【发布时间】:2021-07-29 09:41:26
【问题描述】:
只是在视图之间传递数据并在视图模型中使用它。下面是用于传递电话号码的 FirstView 的代码:
struct FirstView: View {
@State private var phone: String = "9876543210"
@State private var isPresented: Bool = false
var body: some View {
ZStack {
Color.background
VStack {
Spacer()
TextField("type here...", text: $phone)
.onTapGesture {
isPresented.toggle()
}
.fullScreenCover(isPresented: $isPresented, content: {
SecondView(phone: phone)
})
Spacer()
}
}
}
}
如何使用从子视图模型中的主视图传递的电话数据作为文本字段的初始值?下面是 SecondView 的未完成代码:
struct SecondView: View {
@StateObject private var viewModel = SecondViewModel()
let phone: String // how to assign this obtained data in viewModel.phone?
var body: some View {
ZStack {
Color.background
VStack {
Spacer()
// textfield default text should be the phone number passed from FirstView
TextField("type here...", text: $viewModel.phone)
Spacer()
}
}
}
}
这是第二个视图模型:
final class SecondViewModel: ObservableObject {
@Published var phone = ""
}
【问题讨论】: