---
title: "sheet(isPresented:onDismiss:content:)"
framework: swiftui
role: symbol
role_heading: Instance Method
path: "swiftui/view/sheet(ispresented:ondismiss:content:)"
---

# sheet(isPresented:onDismiss:content:)

Presents a sheet when a binding to a Boolean value that you provide is true.

## Declaration

```swift
nonisolated func sheet<Content>(isPresented: Binding<Bool>, onDismiss: (() -> Void)? = nil, @ContentBuilder content: @escaping () -> Content) -> some View where Content : View

```

## Parameters

- `isPresented`: A binding to a Boolean value that determines whether to present the sheet that you create in the modifier’s content closure.
- `onDismiss`: The closure to execute when dismissing the sheet.
- `content`: A closure that returns the content of the sheet.

## Discussion

Discussion Use this method when you want to present a modal view to the user when a Boolean value you provide is true. The example below displays a modal view of the mockup for a software license agreement when the user toggles the isShowingSheet variable by clicking or tapping on the “Show License Agreement” button: struct ShowLicenseAgreement: View {     @State private var isShowingSheet = false     var body: some View {         Button(action: {             isShowingSheet.toggle()         }) {             Text("Show License Agreement")         }         .sheet(isPresented: $isShowingSheet,                onDismiss: didDismiss) {             VStack {                 Text("License Agreement")                     .font(.title)                     .padding(50)                 Text("""                         Terms and conditions go here.                     """)                     .padding(50)                 Button("Dismiss",                        action: { isShowingSheet.toggle() })             }         }     }

func didDismiss() {         // Handle the dismissing action.     } }

In vertically compact environments, such as iPhone in landscape orientation, a sheet presentation automatically adapts to appear as a full-screen cover. Use the presentationCompactAdaptation(_:) or presentationCompactAdaptation(horizontal:vertical:) modifier to override this behavior. Breakthrough effect In visionOS, most system presentations appear with a breakthrough effect by default. To change how the enclosing presentation breaks through content occluding it, use presentationBreakthroughEffect(_:), like in the following example: .sheet(isPresented: $isShowingSheet,        onDismiss: didDismiss) {     VStack {         Text("License Agreement")             .font(.title)             .padding(50)         Text("""                 Terms and conditions go here.             """)             .padding(50)         Button("Dismiss",                action: { isShowingSheet.toggle() })     }     .presentationBreakthroughEffect(.prominent) } note: Passing a .none value for a sheet has no effect.

## See Also

### Showing a sheet, cover, or popover

- [sheet(item:onDismiss:content:)](swiftui/view/sheet(item:ondismiss:content:).md)
- [fullScreenCover(isPresented:onDismiss:content:)](swiftui/view/fullscreencover(ispresented:ondismiss:content:).md)
- [fullScreenCover(item:onDismiss:content:)](swiftui/view/fullscreencover(item:ondismiss:content:).md)
- [popover(item:attachmentAnchor:arrowEdge:content:)](swiftui/view/popover(item:attachmentanchor:arrowedge:content:).md)
- [popover(isPresented:attachmentAnchor:arrowEdge:content:)](swiftui/view/popover(ispresented:attachmentanchor:arrowedge:content:).md)
- [PopoverAttachmentAnchor](swiftui/popoverattachmentanchor.md)
