SwiftUI:切换和按钮的奇怪错误

问题描述 投票:0回答:1

我对此代码有疑问。错误消息似乎是错误的,该代码应该是正确的。但这是行不通的,我也不知道是什么原因。谁能给我一个提示?首先,我尝试使用Text而不是变量进行此操作。由于我更改为“变量”,因此无法使用。目标:如果点击了一个按钮,我想显示“ DetailView”,并从该视图中获取一些数据。使用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()
    }
}
compiler-errors boolean swiftui picker
1个回答
0
投票

输入

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的一些初学者教程。

© www.soinside.com 2019 - 2024. All rights reserved.