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

Posted

技术标签:

【中文标题】SwiftUI 的 List/ForEach 视图中是不是可以有一个 Button(action: -)【英文标题】:Is it possible to have a Button(action: -) in a List/ForEach view in SwiftUISwiftUI 的 List/ForEach 视图中是否可以有一个 Button(action: -) 【发布时间】:2020-05-04 07:06:46 【问题描述】:

我想将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】:

这是可能的方法

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 !!
      
    
  

【讨论】:

以上是关于SwiftUI 的 List/ForEach 视图中是不是可以有一个 Button(action: -)的主要内容,如果未能解决你的问题,请参考以下文章

使用 SwiftUI List()、ForEach()、.onTapGesture WatchOS6 传递值的问题

带有 Xcode 11 beta 7 的 SwiftUI 未更新 List / ForEach 的内容

List ForEach 没有正确更新

SwiftUI:List/ForEach 中的滑块行为异常

SwiftUI - 如何在 SwiftUI 中弹出到特定视图?

从 swiftUI 中的另一个视图中关闭模态视图