我对此代码有疑问。错误消息似乎是错误的,该代码应该是正确的。但这是行不通的,我也不知道是什么原因。谁能给我提示吗?首先,我尝试使用文本而不是变量进行此操作。由于我更改为“变量”,因此将无法使用。
目标:如果点击了一个按钮,我想显示“DetailView”,并从该 View 中获取一些数据。使用Toggle&PickerView输入的数据(由于此错误,我尚未实现Picker。)
这是代码:
import SwiftUI
class HandoverData: ObservableObject{
@Published var Befehl: String = ""
@Published var WebLnk: String = ""
@Published var bOnOff: Bool = false
}
struct ContentView: View {
@State private var bToGo: Bool
@EnvironmentObject var HandOverData: HandoverData
var body: some View {
VStack{
Text("Hello, World!")
self.HandOverData.Befehl = "Text"
self.HandOverData.WebLnk = "www.heise.de"
Button(action: { //<= Generic parameter 'Label' could not be inferred
self.bToGo.toggle()
}) {
Text(HandOverData.Befehl)
}.sheet(isPresented: self.$bToGo) {
DetailView(GetDat: HandOverData)
}
}
}
}
struct DetailView: View{
@ObservedObject var GetDat: HandoverData
var body: some View{
VStack{
Text(GetDat.Befehl)
Spacer()
Toggle(isOn: self.GetDat.bOnOff) { <= 'Bool' is not convertible to 'Binding<Bool>'
Text("An/Aus")
}
Spacer()
Button(action: {
let http = "https://"
let url: NSURL = URL(string: http + self.GetDat.WebLnk)! as NSURL
UIApplication.shared.open(url as URL)
}) {
Text(GetDat.WebLnk)
}
Spacer()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
最佳答案
在
var body: some View {
VStack{
Text("Hello, World!")
self.HandOverData.Befehl = "Text"
self.HandOverData.WebLnk = "www.heise.de"
Button(action: { //<= Generic parameter 'Label' could not be inferred
self.bToGo.toggle()
}) {
Text(HandOverData.Befehl)
}.sheet(isPresented: self.$bToGo) {
DetailView(GetDat: HandOverData)
}
}
}
您将无法执行任何普通的快速代码!
self.HandOverData.Befehl = "Text"
self.HandOverData.WebLnk = "www.heise.de"
首先请参阅有关SwiftUI的一些初学者教程。
诠释这部分
Toggle(isOn: self.GetDat.bOnOff) { <= 'Bool' is not convertible to 'Binding<Bool>'
Text("An/Aus")
}
采用
Toggle(isOn: self.$GetDat.bOnOff) { <= 'Bool' is not convertible to 'Binding<Bool>'
Text("An/Aus")
}
代替
关于compiler-errors - SwiftUI : strange errors with Toggle and Button,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60378690/