I need to use a presented sheet (not Popover) in a VisionOS app. It is trivial to get the sheet to appear correctly but I cannot get it to disappear by gesture (i.e. swipe down) in the simulator? Programmatic dismissal works but is clumsy from a UI perspective.
This is the code:
struct ContentView: View {
@State var displaySheet : Bool = false
var body: some View {
VStack {
Toggle("Display Sheet", isOn: $displaySheet)
.toggleStyle(.switch)
.padding(.horizontal,100)
}
.padding()
.sheet(isPresented: $displaySheet, content: {
PresentedSheetView()
})
}
}
struct PresentedSheetView: View {
var body: some View {
VStack {
Text("This is the presented sheet!")
}
.padding()
.frame(width: 400, height: 400)
}
}
Swipe down does not work. .onTapGesture to dismiss also will not work because in the real app there are other controls that are activated by tapping.
I can reproduce the issue. You should file a bug report with Feedback Assistant.
For now you could add a
Button
to thetoolbar
or anonTapGesture
but none of these solutions are ideal.