I have a button that shows after the user swipes left on an HStack
. When the user clicks on the button, I want to show a popover. However it doesn't work, nothing happens when the button is clicked. Here is my code:
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")
}
}
}
}
I noticed that the popover worked when I moved the Button
out of swipeActions
(i.e. directly inside HStack
). So it seems that swipeActions
doesn't work with popover
. What's the problem here? How to make them work together?
CodePudding user response:
I think you can move .popover
modifer to set on 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)
}
}