【问题标题】:SwiftUI List rows in Edit Mode do not allow Buttons actions/NavigationLinks to work?编辑模式下的 SwiftUI 列表行不允许按钮操作/导航链接工作?
【发布时间】:2020-04-15 08:12:46
【问题描述】:

我注意到,编辑模式下的 SwiftUI 列表行不允许按钮操作起作用(以及 NavigationLinks 也是如此)。有没有办法让这个工作?

目标 - 希望有 NavigationLink 或 Modal 视图,具体取决于编辑模式。这依赖于让按钮操作/导航链接在编辑模式下工作的能力。 (如果有另一种方法可以实现我的目标很高兴有指针)

  1. 非编辑模式:单击行 => 此记录的详细视图
  2. 在编辑模式下:单击行 => 主记录名称的编辑视图(例如重命名)

代码(只是为了突出显示按钮在编辑模式下不起作用):

   List() {
        ForEach(gcLists) { gcList in
            HStack {
                Button(gcList.title) {
                    print("button pressed!")
                }
            }
        }
        .onDelete(perform: deleteList)
        .onMove(perform: move)
    }

【问题讨论】:

  • 您可以使用任何带有 onTapGesture 的视图(例如文本)来代替按钮。 onTapGesture 一直在工作。
  • 目前有没有比公认的答案更好的解决方案?

标签: swiftui swiftui-list swiftui-navigationlink


【解决方案1】:

我之前使用过以下方法,请尝试

Button(action: {}) {
  // label content here
}
.onTapGesture {
  // action here
}

【讨论】:

  • 只有当我点击按钮文本时才会触发onTapGesture。如果我点击列表行中的任意位置,有没有办法触发它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多