如何在 swift ui 中将 swipeActions 与弹出窗口一起使用?

How to use swipeActions with popover in swift ui?

我有一个按钮,当用户在 HStack 上向左滑动时会显示该按钮。当用户单击按钮时,我想显示一个弹出窗口。但是它不起作用,单击按钮时没有任何反应。这是我的代码:

struct SwipeItem: View {

    @State private var showPopover = false

    var body: some View {
        HStack(spacing: 0) {
            Text("text")
            Spacer()
        }
        .swipeActions(allowsFullSwipe: false) {
            Button("Modify", action: {
                showPopover = true
            })
            .tint(.green)
            .popover(isPresented: $showPopover) {
                Text("popover")
            }
        }
    }
}

我注意到当我将 Button 移出 swipeActions 时弹出窗口起作用(即直接在 HStack 内)。所以 swipeActions 似乎不适用于 popover。这里有什么问题?如何让它们协同工作?

我想你可以移动 .popover 修饰符来设置 HStack

var body: some View {
    HStack(spacing: 0) {
        Text("text")
        Spacer()
    }
    .popover(isPresented: $showPopover) {
        Text("popover")
     }
    .swipeActions(allowsFullSwipe: false) {
        Button("Modify", action: {
            showPopover = true
        })
        .tint(.green)
    }
}