快速添加一个按钮,该按钮从使用foreach循环的列表中删除行

时间:2020-07-20 20:51:59

标签: swift foreach swiftui

我有一个包含foreach循环的列表,并且我想在每行中创建一个删除按钮以删除该行。

我有一个结构体数组

struct Lists{
    var title : String
    var id = UUID()
}


和数组

@State var list = [Lists]()

这是列表

List{        
      ForEach(list, id : \.id ){ item in
          NavigationLink(destination:DetailView(word:item.title)){
              HStack {
                 Text(item.title)
                 Spacer()
                 Button(action: {
                      self.list.remove(at: 0)
                 }){
                      Text("×")
                 }
              }
          }
      }
  }

我将remove(at:0)设置为零是因为我不知道如何在for循环中获取索引。

列表:

the list

1 个答案:

答案 0 :(得分:0)

我通常认为更容易使用计数。.

List {
      ForEach(0..<list.count, id : \.self ){ index in
        NavigationLink(destination:DetailView(word: list[index].title)){
            HStack {
               Text(list[index].title)
               Spacer()
               Button(action: {
                    self.list.remove(at: index)
               }){
                    Text("×")
               }
            }
        }
      }
   }