我正在尝试分配一个我从JSON提取并解析的值到另一个视图。
struct ContentView: View {
@State private var showAlert = false
@State private var showAbout = false
@State private var showModal = false
@State private var title = "hi"
@State private var isCodeSelectorPresented = false
@ObservedObject var fetch = FetchNovitads()
var body: some View {
VStack {
NavigationView {
List(fetch.Novitadss) { Novitads in
VStack(alignment: .leading) {
// 3.
Text(Novitads.name!.de)
.platformFont()
.fontWeight(.black)
Text(Novitads.textTeaser.de)
.platformFont()
.fontWeight(.medium)
.onTapGesture {
self.showModal.toggle()
// 3.
}.sheet(isPresented: self.$showModal) {
ModalView(showModal: self.$showModal,
title: self.$title)
}
在此示例代码中,标题(定义为“ hi”)正确传递。但是我要做的是将Novitads.name!.de的值分配给title变量,以便我可以在模式视图中使用它。
尝试这样分配标题:
struct ContentView: View {
struct ContentView: View {
@State private var showAlert = false
@State private var showAbout = false
@State private var showModal = false
@State private var title = "hi"
@State private var isCodeSelectorPresented = false
@ObservedObject var fetch = FetchNovitads()
var body: some View {
VStack {
NavigationView {
List(fetch.Novitadss) { Novitads in
VStack(alignment: .leading) {
// 3.
Text(Novitads.name!.de)
.platformFont()
.fontWeight(.black)
Text(Novitads.textTeaser.de)
.platformFont()
.fontWeight(.medium)
.onTapGesture {
self.showModal.toggle()
// 3.
}.sheet(isPresented: self.$showModal) {
ModalView(showModal: self.$showModal, title: self.$title)
}
}
}
}
}.onAppear(perform:{ self.title = self.fetch.Novitads.name!.de })
}
我只在ModalView
Text("(String(title))")
中显示self。$ title。>然后,您不需要在这里绑定并直接传递值,例如
ModalView(showModal: self.$showModal, title: Novitads.name!.de)
和您的
ModalView
声明为
struct ModalView: View { @Binding showModal: Bool let title: String /// .. all other your code }
注意:
@State private var title = "hi"
可以全部删除