目前使用 Xcode 13 和 IOS 15。
我正在使用 CoreData 显示即将到来的旅行列表。在每次旅行中,我有 2 个滑动操作,一个是删除旅行,第二个是编辑旅行。选择“编辑”按钮时,我然后触发显示eDITTRIPSCREEN到TRUE,以便显示“编辑”表格。我正在将行程传递到此表中以进行编辑。问题是无论从 ForEach 行中选择什么行程,发送到 EditTripScreen 的始终是第一个行程数据。我这样做是否正确,或者是他们的另一种解决方案。谢谢
ForEach(tripVM.trips, id: \.id) { trip in
TripCardView(trip: trip)
.listRowSeparator(.hidden)
//.padding(.horizontal)
.swipeActions(allowsFullSwipe: false) {
// Edit Trip
Button {
showingEditTripScreen = true
} label: {
Label("Edit", systemImage: "pencil.circle.fill")
}
.tint(.green)
// Delete Trip
Button {
tripVM.deleteTrip(trip: trip)
tripVM.getAllTrips()
} label: {
Label("Delete", systemImage: "trash.circle.fill")
}
.tint(.red)
}
.sheet(isPresented: $showingEditTripScreen, onDismiss: {
}, content: {
EditTripScreen(trip: trip)
})
}