Tengo elementos de lista en SwiftUI, y cuando elimino elementos de lista quiero eliminar después del menú de alerta, como
"quiero eliminar los elementos de su lista", "sí" o "no"
¿Es posible?
struct MyView: View { @State private var selectedUsers: MyModel? var body: some View { ScrollView(.vertical, showsIndicators: false, content: { VStack(content: { ForEach(datas){ data in MyRowView(data: data) .contextMenu { Button(action: { self.delete(item: data) }) { Text("delete") } } .onTapGesture { selectedUsers = data } } .onDelete { (indexSet) in self.datas.remove(atOffsets: indexSet) }}) })} private func delete(item data: MyModel) { if let index = datas.firstIndex(where: { $0.id == data.id }) { datas.remove(at: index) } }}En la acción de eliminación, establece un bool @State en verdadero, esto activa, por ejemplo, un Diálogo de ConfirmationDialog , y solo después de confirmar allí, realmente elimina:
} .onDelete { (indexSet) in confirmDelete = true // a @State var Bool }}) .confirmationDialog("Do you really want to delete?", isPresented: $confirmDelete) { Button("Delete", role: .destructive) { selectedUsers.remove(atOffsets: indexSet) } Button("Cancel", role: .cancel) { } }