gpt4 book ai didi

ios - 无法在 SwiftUI 中使用 ForEach 和 CoreData 将数据正确传递给模态演示

转载 作者:行者123 更新时间:2023-12-01 18:03:41 27 4
gpt4 key购买 nike

我试图将某些对象的数据从对象列表传递到模式表,从 CoreData 获取数据。

问题是无论我在列表中点击什么对象,只有最后添加的对象的数据表单出现在详细信息 View 中。

删除对象也是如此——无论我要删除什么对象,最后一个对象都会一直被删除。

使用 NavigationLink 问题消失了,但它不适合我。

这是我的代码:

import SwiftUI

struct CarScrollView: View {

@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: Cars.entity(), sortDescriptors: []) var cars: FetchedResults<Cars>

@State var showDetails = false

var body: some View {
VStack {
ScrollView (.vertical, showsIndicators: false) {
ForEach (cars, id: \.self) { car in

Text("\(car.text!)")
.onTapGesture {
self.showDetails.toggle()
}
.sheet(isPresented: self.$showDetails) { CarDetail(id: car.id, text: car.text)
}
}
}
}
}
}

最佳答案

View 堆栈中应该只有一张纸,所以只需将其移出 ForEach ,如下所示

struct CarScrollView: View {

@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: Cars.entity(), sortDescriptors: []) var cars: FetchedResults<Cars>

@State private var selectedCar: Car? = nil

var body: some View {
VStack {
ScrollView (.vertical, showsIndicators: false) {
ForEach (cars, id: \.self) { car in

Text("\(car.text!)")
.onTapGesture {
self.selectedCar = car
}
}
}
}
.sheet(item: self.$selectedCar) { car in
CarDetail(id: car.id, text: car.text)
}

}
}
backup

关于ios - 无法在 SwiftUI 中使用 ForEach 和 CoreData 将数据正确传递给模态演示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61176412/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com