при попытке удалить элемент в списке из модального представления получает cra sh Thread 1: Fatal error: Index out of range
например,
- delete 1 -> 2 -> 3 получает cra sh
- delete 2 -> 1 получает cra sh
- delete 3 получает cra sh
если закомментировать часть текстового поля, нет cra sh. не совсем уверен, что происходит ...
struct ContentView: View {
@State var strs = ["1", "2", "3"]
@State var showingDetail: Bool = false
var body: some View {
List {
ForEach(Array(strs.enumerated()), id: \.element) { index, str in
VStack {
Button(action: {
self.showingDetail.toggle()
}) {
Text("show modal")
.sheet(isPresented: self.$showingDetail) {
ModalView(showingDetail: self.$showingDetail, strs:self.$strs,
index: index)
}
TextField("", text:self.$strs[index])
}
}
}
}
}
}
struct ModalView: View {
@Binding var showingDetail: Bool
@Binding var strs: [String]
var index: Int = 0
var body: some View {
Button(action: {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.strs.remove(at: self.index)
}
self.showingDetail.toggle()
}) {
Text("delete")
}
}
}