我正在尝试将某个对象的数据从对象列表传递到模型表,从CoreData获取数据。
问题是,无论我单击列表中的哪个对象,都只有数据表单最后添加的对象出现在详细信息视图中。
同样的道理也适用于删除对象--无论我试图删除什么对象,最后一个对象总是会被删除。
使用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)
}
}
}
}
}
}
发布于 2020-04-13 03:08:59
视图堆栈中应该只有一个工作表,因此只需将其移出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)
}
}
}
https://stackoverflow.com/questions/61176412
复制相似问题