SwiftUI:从json解析的对象中分配绑定变量



我正在尝试将从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变量,这样我就可以在模态视图中使用它。

我只是显示自己$ModalViewText("(String(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"完全可以移除

尝试分配这样的标题:

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 })
}

最新更新