ios - 如何在 SwiftUI 中向 List 的 .ondelete() 添加确认

标签 ios swift listview swiftui

如何向我的 deleteRow() 添加确认信息功能?
A 已经添加了 .alert但我不知道如何继续。

List {
    ForEach(data, id: \.self) { item in
        Text(item)
        .alert(isPresented: self.$showingDeleteAlert) {
            Alert(title: Text("..."), message: Text("..."), primaryButton: .destructive(Text("Delete")) {
                deleteRow // ???
                }, secondaryButton: .cancel()
            )
        }
    }
    .onDelete(perform: deleteRow)
}

func deleteRow(at indexSet: IndexSet) {
    for index in indexSet {
        let item = data[index]
        viewContext.delete(item)
        do {
            try viewContext.save()
        } catch let error {
            print("Error: \(error)")
        }
    }
}
``

最佳答案

这是可能的方法:

@State private var toBeDeleted: IndexSet?

...

List {
    ForEach(data, id: \.self) { item in
        Text(item)
        .alert(isPresented: self.$showingDeleteAlert) {
            Alert(title: Text("..."), message: Text("..."), primaryButton: .destructive(Text("Delete")) {
                    for index in self.toBeDeleted {
                        let item = data[index]
                        viewContext.delete(item)
                        do {
                            try viewContext.save()
                        } catch let error {
                            print("Error: \(error)")
                        }
                    }
                    self.toBeDeleted = nil
                }, secondaryButton: .cancel() {
                    self.toBeDeleted = nil
                }
            )
        }
    }
    .onDelete(perform: deleteRow)
}

func deleteRow(at indexSet: IndexSet) {
    self.toBeDeleted = indexSet           // store rows for delete
    self.showingDeleteAlert = true
}

关于ios - 如何在 SwiftUI 中向 List 的 .ondelete() 添加确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62720595/

相关文章:

ios - 在 tableView 中显示自定义表格分隔符 UIView

ios - 递归函数调用时的 Swiftdispatch_group 奇怪行为

ios - 如何以编程方式覆盖约束?

android - Droid 3 上的 ListView 背景为灰色

iphone - iOS - 如何在 View 中绘制透明三角形

xcode - 在 swift 中使用 xcpretty 命令运行 xcodebuild 时出错

ios - MKMapItem 地标在 swift 中不可用

jquery - 移动设备的文本对齐

asp.net - 在 ASP.NET 中将对象数组列表绑定(bind)到 ListView

android - 我们是否需要将 mp4 或 mp3 转码为 HLS 格式以在移动应用程序上流式传输视频/音频?