---
title: Modal presentations
framework: swiftui
role: collectionGroup
role_heading: API Collection
path: swiftui/modal-presentations
---

# Modal presentations

Present content in a separate view that offers focused interaction.

## Overview

Overview To draw attention to an important, narrowly scoped task, you display a modal presentation, like an alert, popover, sheet, or confirmation dialog.

In SwiftUI, you create a modal presentation using a view modifier that defines how the presentation looks and the condition under which SwiftUI presents it. SwiftUI detects when the condition changes and makes the presentation for you. Because you provide a Binding to the condition that initiates the presentation, SwiftUI can reset the underlying value when the user dismisses the presentation. For design guidance, see Modality in the Human Interface Guidelines.

## Topics

### Configuring a dialog

- [DialogSeverity](swiftui/dialogseverity.md)

### Showing a sheet, cover, or popover

- [sheet(isPresented:onDismiss:content:)](swiftui/view/sheet(ispresented:ondismiss:content:).md)
- [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)

### Adapting a presentation size

- [presentationCompactAdaptation(horizontal:vertical:)](swiftui/view/presentationcompactadaptation(horizontal:vertical:).md)
- [presentationCompactAdaptation(_:)](swiftui/view/presentationcompactadaptation(_:).md)
- [PresentationAdaptation](swiftui/presentationadaptation.md)
- [presentationSizing(_:)](swiftui/view/presentationsizing(_:).md)
- [PresentationSizing](swiftui/presentationsizing.md)
- [PresentationSizingRoot](swiftui/presentationsizingroot.md)
- [PresentationSizingContext](swiftui/presentationsizingcontext.md)

### Configuring a sheet’s height

- [presentationDetents(_:)](swiftui/view/presentationdetents(_:).md)
- [presentationDetents(_:selection:)](swiftui/view/presentationdetents(_:selection:).md)
- [presentationContentInteraction(_:)](swiftui/view/presentationcontentinteraction(_:).md)
- [presentationDragIndicator(_:)](swiftui/view/presentationdragindicator(_:).md)
- [PresentationDetent](swiftui/presentationdetent.md)
- [CustomPresentationDetent](swiftui/custompresentationdetent.md)
- [PresentationContentInteraction](swiftui/presentationcontentinteraction.md)

### Styling a sheet and its background

- [presentationCornerRadius(_:)](swiftui/view/presentationcornerradius(_:).md)
- [presentationBackground(_:)](swiftui/view/presentationbackground(_:).md)
- [presentationBackground(alignment:content:)](swiftui/view/presentationbackground(alignment:content:).md)
- [presentationBackgroundInteraction(_:)](swiftui/view/presentationbackgroundinteraction(_:).md)
- [PresentationBackgroundInteraction](swiftui/presentationbackgroundinteraction.md)

### Presenting an alert

- [AlertScene](swiftui/alertscene.md)
- [alert(_:isPresented:actions:)](swiftui/view/alert(_:ispresented:actions:).md)
- [alert(_:isPresented:presenting:actions:)](swiftui/view/alert(_:ispresented:presenting:actions:).md)
- [alert(_:item:actions:)](swiftui/view/alert(_:item:actions:).md)
- [alert(error:actions:)](swiftui/view/alert(error:actions:).md)
- [alert(isPresented:error:actions:)](swiftui/view/alert(ispresented:error:actions:).md)
- [alert(_:isPresented:actions:message:)](swiftui/view/alert(_:ispresented:actions:message:).md)
- [alert(_:isPresented:presenting:actions:message:)](swiftui/view/alert(_:ispresented:presenting:actions:message:).md)
- [alert(_:item:actions:message:)](swiftui/view/alert(_:item:actions:message:).md)
- [alert(error:actions:message:)](swiftui/view/alert(error:actions:message:).md)
- [alert(isPresented:error:actions:message:)](swiftui/view/alert(ispresented:error:actions:message:).md)

### Getting confirmation for an action

- [confirmationDialog(_:isPresented:titleVisibility:actions:)](swiftui/view/confirmationdialog(_:ispresented:titlevisibility:actions:).md)
- [confirmationDialog(_:isPresented:titleVisibility:presenting:actions:)](swiftui/view/confirmationdialog(_:ispresented:titlevisibility:presenting:actions:).md)
- [dismissalConfirmationDialog(_:shouldPresent:actions:)](swiftui/view/dismissalconfirmationdialog(_:shouldpresent:actions:).md)

### Showing a confirmation dialog with a message

- [confirmationDialog(_:isPresented:titleVisibility:actions:message:)](swiftui/view/confirmationdialog(_:ispresented:titlevisibility:actions:message:).md)
- [confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)](swiftui/view/confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:).md)
- [dismissalConfirmationDialog(_:shouldPresent:actions:message:)](swiftui/view/dismissalconfirmationdialog(_:shouldpresent:actions:message:).md)

### Configuring a dialog

- [dialogIcon(_:)](swiftui/view/dialogicon(_:).md)
- [dialogIcon(_:)](swiftui/scene/dialogicon(_:).md)
- [dialogSeverity(_:)](swiftui/view/dialogseverity(_:).md)
- [dialogSeverity(_:)](swiftui/scene/dialogseverity(_:).md)
- [dialogSuppressionToggle(isSuppressed:)](swiftui/view/dialogsuppressiontoggle(issuppressed:).md)
- [dialogSuppressionToggle(isSuppressed:)](swiftui/scene/dialogsuppressiontoggle(issuppressed:).md)
- [dialogSuppressionToggle(_:isSuppressed:)](swiftui/view/dialogsuppressiontoggle(_:issuppressed:).md)
- [dialogSuppressionToggle(_:isSuppressed:)](swiftui/scene/dialogsuppressiontoggle(_:issuppressed:).md)
- [dialogPreventsAppTermination(_:)](swiftui/view/dialogpreventsapptermination(_:).md)

### Exporting to file

- [fileExporter(isPresented:document:contentType:defaultFilename:onCompletion:)](swiftui/view/fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:).md)
- [fileExporter(isPresented:documents:contentType:onCompletion:)](swiftui/view/fileexporter(ispresented:documents:contenttype:oncompletion:).md)
- [fileExporter(isPresented:document:contentType:defaultFilename:onCompletion:onCancellation:)](swiftui/view/fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:oncancellation:).md)
- [fileExporter(isPresented:document:contentTypes:defaultFilename:onCompletion:onCancellation:)](swiftui/view/fileexporter(ispresented:document:contenttypes:defaultfilename:oncompletion:oncancellation:).md)
- [fileExporter(isPresented:documents:contentTypes:onCompletion:onCancellation:)](swiftui/view/fileexporter(ispresented:documents:contenttypes:oncompletion:oncancellation:).md)
- [fileExporter(isPresented:item:contentTypes:defaultFilename:onCompletion:onCancellation:)](swiftui/view/fileexporter(ispresented:item:contenttypes:defaultfilename:oncompletion:oncancellation:).md)
- [fileExporter(isPresented:items:contentTypes:onCompletion:onCancellation:)](swiftui/view/fileexporter(ispresented:items:contenttypes:oncompletion:oncancellation:).md)
- [fileExporterFilenameLabel(_:)](swiftui/view/fileexporterfilenamelabel(_:).md)

### Importing from file

- [fileImporter(isPresented:allowedContentTypes:allowsMultipleSelection:onCompletion:)](swiftui/view/fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:).md)
- [fileImporter(isPresented:allowedContentTypes:onCompletion:)](swiftui/view/fileimporter(ispresented:allowedcontenttypes:oncompletion:).md)
- [fileImporter(isPresented:allowedContentTypes:allowsMultipleSelection:onCompletion:onCancellation:)](swiftui/view/fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:oncancellation:).md)

### Moving a file

- [fileMover(isPresented:file:onCompletion:)](swiftui/view/filemover(ispresented:file:oncompletion:).md)
- [fileMover(isPresented:files:onCompletion:)](swiftui/view/filemover(ispresented:files:oncompletion:).md)
- [fileMover(isPresented:file:onCompletion:onCancellation:)](swiftui/view/filemover(ispresented:file:oncompletion:oncancellation:).md)
- [fileMover(isPresented:files:onCompletion:onCancellation:)](swiftui/view/filemover(ispresented:files:oncompletion:oncancellation:).md)

### Configuring a file dialog

- [fileDialogBrowserOptions(_:)](swiftui/view/filedialogbrowseroptions(_:).md)
- [fileDialogConfirmationLabel(_:)](swiftui/view/filedialogconfirmationlabel(_:).md)
- [fileDialogCustomizationID(_:)](swiftui/view/filedialogcustomizationid(_:).md)
- [fileDialogDefaultDirectory(_:)](swiftui/view/filedialogdefaultdirectory(_:).md)
- [fileDialogImportsUnresolvedAliases(_:)](swiftui/view/filedialogimportsunresolvedaliases(_:).md)
- [fileDialogMessage(_:)](swiftui/view/filedialogmessage(_:).md)
- [fileDialogURLEnabled(_:)](swiftui/view/filedialogurlenabled(_:).md)
- [FileDialogBrowserOptions](swiftui/filedialogbrowseroptions.md)

### Presenting an inspector

- [inspector(isPresented:content:)](swiftui/view/inspector(ispresented:content:).md)
- [inspectorColumnWidth(_:)](swiftui/view/inspectorcolumnwidth(_:).md)
- [inspectorColumnWidth(min:ideal:max:)](swiftui/view/inspectorcolumnwidth(min:ideal:max:).md)

### Dismissing a presentation

- [isPresented](swiftui/environmentvalues/ispresented.md)
- [dismiss](swiftui/environmentvalues/dismiss.md)
- [DismissAction](swiftui/dismissaction.md)
- [interactiveDismissDisabled(_:)](swiftui/view/interactivedismissdisabled(_:).md)

### Deprecated modal presentations

- [Alert](swiftui/alert.md)
- [ActionSheet](swiftui/actionsheet.md)

## See Also

### App structure

- [App organization](swiftui/app-organization.md)
- [Scenes](swiftui/scenes.md)
- [Windows](swiftui/windows.md)
- [Immersive spaces](swiftui/immersive-spaces.md)
- [Documents](swiftui/documents.md)
- [Navigation](swiftui/navigation.md)
- [Toolbars](swiftui/toolbars.md)
- [Search](swiftui/search.md)
- [App extensions](swiftui/app-extensions.md)
