

`swipeActions` で item の Bool を変更したいのですが、選択する item の IndexSet
の指定はどのようにすればいいですか？

以下のようにして、`deleteItems(offsets: indexSet)` の部分での indexSet に  
`let indexSet: IndexSet = IndexSet()` としましたが、変更されません。

[code]

    }.swipeActions(edge: .trailing, allowsFullSwipe: false) {
        Button {
            deleteItems(offsets: indexSet)
        } label: {Image(systemName: "trash")}
    }
    
[/code]

[code]

        func deleteItems(offsets: IndexSet) {
             withAnimation {
                 offsets.map { items[$0] }.forEach{$0.bool.toggle()}
    
                 do {
                     try viewContext.save()
                 } catch {
                     let nsError = error as NSError
                     fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
                 }
             }
         }
    
[/code]

以下のように記述するとエラーになります。

[code]

    ForEach(items, id: \.self){item in
    Text(item.text ?? "a")
    }
    
    }.swipeActions(edge: .trailing, allowsFullSwipe: false) {
        Button {
        item.bool.toggle()
        } label: {Image(systemName: "trash")}
    }
    
[/code]


CC BY-SA 4.0
2023-11-10T00:52:56.950
96730
2023-11-10T01:34:26.530
2023-11-10T01:34:26.530
3060
39481
question
xcode swiftui
swipeActionsでitemのアトリビュートを変更時の、引数のIndexSetに指定するプロパティ