我有一个名为PDFManager的文件,它负责创建和保存pdf文件。
在PDFManager上,我创建var nameCPT:String =“”,然后从ContentView中尝试用文本字段中的值填充此var
问题是,Xcode给我一个错误,说“无法将'String'类型的值转换为预期的参数类型'Binding'”
我尝试使用pdf管理器使用@State创建var,但仍然无法正常工作 知道如何将我的textField的值传递给PDFManager吗?
谢谢
import SwiftUI
struct ContentView: View {
var lm : PDFManager
var body: some View {
VStack {
fakebar
Spacer()
HStack {
TextField("Insert Nome CPT", text: lm.nameCPT).
// not working, I try with $lm.nameCPT but still not working
.padding(.leading)
}
Spacer()
}
}
答案 0 :(得分:0)
您需要使用@Observed
属性包装器来观察属性并遵守PDFManager类中的ObservableObject
。
class PDFManager:ObservableObject {
var nameCPT:String = "test"
}
struct ContentView: View {
@ObservedObject var lm : PDFManager = PDFManager()
var body: some View {
VStack {
Spacer()
HStack {
TextField("Insert Nome CPT", text: $lm.nameCPT)
.padding(.leading)
Button(action:{
// Prints the value stored in your PDF manager
print(self.lm.nameCPT)
}){
Text("Check")
}
}
Spacer()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}