<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: 14.0.0 -",
    "tvOS: 14.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 7.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/View/fullScreenCover(item:onDismiss:content:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:7SwiftUI4ViewPAAE15fullScreenCover4item9onDismiss7contentQrAA7BindingVyqd__SgG_yycSgqd_0_qd__cts12IdentifiableRd__AaBRd_0_r0_lF"
  },
  "title" : "fullScreenCover(item:onDismiss:content:)"
}
-->

# fullScreenCover(item:onDismiss:content:)

Presents a modal view that covers as much of the screen as
possible using the binding you provide as a data source for the
sheet’s content.

```
nonisolated func fullScreenCover<Item, Content>(item: Binding<Item?>, onDismiss: (() -> Void)? = nil, @ContentBuilder content: @escaping (Item) -> Content) -> some View where Item : Identifiable, Content : View
```

## Parameters

`item`

A binding to an optional source of truth for the sheet.
When `item` is non-`nil`, the system passes the contents to
the modifier’s closure. You display this content in a sheet that you
create that the system displays to the user. If `item` changes,
the system dismisses the currently displayed sheet and replaces
it with a new one using the same process.

`onDismiss`

The closure to execute when dismissing the modal view.

`content`

A closure returning the content of the modal view.

## Discussion

Use this method to display a modal view that covers as much of the
screen as possible. In the example below a custom structure —
`CoverData` — provides data for the full-screen view to display in the
`content` closure when the user clicks or taps the
“Present Full-Screen Cover With Data” button:

```
struct FullScreenCoverItemOnDismissContent: View {
    @State private var coverData: CoverData?

    var body: some View {
        Button("Present Full-Screen Cover With Data") {
            coverData = CoverData(body: "Custom Data")
        }
        .fullScreenCover(item: $coverData,
                         onDismiss: didDismiss) { details in
            VStack(spacing: 20) {
                Text("\(details.body)")
            }
            .onTapGesture {
                coverData = nil
            }
        }
    }

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

}

struct CoverData: Identifiable {
    var id: String {
        return body
    }
    let body: String
}
```

![A full-screen modal view that shows Custom](images/com.apple.SwiftUI/SwiftUI-FullScreenCoverItemOnDismissContent@2x.png)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)