SwiftUI的List / ForEach视图中是否可以有一个Button(action:-)

时间:2020-05-04 07:06:46

标签: swiftui swiftui-navigationlink

我想将Button(action: -视图添加到其中具有ForEach且其中具有NavigationLink的列表视图。因此,用户可以查看具有Button(action: -的列表的详细信息屏幕,但是如果用户不需要查看详细信息,则可以使用列表中的Button选择。

List {
  ForEach(DATA, id: \.self { data in
    NavigationLink(destination: DetailView(data: data)) {
      HStack {
        Text(data.name)
        Button(action: {
           // add to an array
        }) {
             Text(data.price)
        }
      }
    }
  }
}

但是当我单击按钮时,总是进入DetailView

不确定是否可以。任何建议

1 个答案:

答案 0 :(得分:1)

这是可行的方法

List {
  ForEach(DATA, id: \.self { data in
    NavigationLink(destination: DetailView(data: data)) {
      HStack {
        Text(data.name)
        Button(action: {
           // add to an array
        }) {
             Text(data.price) // some padding might be useful
                .foregroundColor(Color.blue) // << can be any 
        }.buttonStyle(PlainButtonStyle())    // << here !!
      }
    }
  }
}