Skip to main content

How to present a full screen modal view using fullScreenCover()

About 2 minSwiftSwiftUIArticle(s)bloghackingwithswift.comcrashcourseswiftswiftuixcodeappstore

How to present a full screen modal view using fullScreenCover() 관련

SwiftUI by Example

Back to Home

How to present a full screen modal view using fullScreenCover() | SwiftUI by Example

How to present a full screen modal view using fullScreenCover()

Updated for Xcode 15

SwiftUI’s fullScreenCover() modifier gives us a presentation style for times when you want to cover as much of the screen as possible, and in code it works almost identically to regular sheets.

Regular sheets can be dismissed by dragging downwards on them, but that isn’t possible with views presented using fullScreenCover(). As a result, it’s important you provide a way to dismiss the presented view, probably using the dismiss environment key.

Important

fullScreenCover() is not available on macOS.

For example, this defines a simple FullScreenModalView struct that can dismiss itself, then presents it from ContentView when another button is pressed:

struct FullScreenModalView: View {
    @Environment(\.dismiss) var dismiss

    var body: some View {
        ZStack {
            Color.primary.edgesIgnoringSafeArea(.all)
            Button("Dismiss Modal") {
                dismiss()
            }
        }
    }
}

struct ContentView: View {
    @State private var isPresented = false

    var body: some View {
        Button("Present!") {
            isPresented.toggle()
        }
        .fullScreenCover(isPresented: $isPresented, content: FullScreenModalView.init)
    }
}
Similar solutions…
How to present a new view using sheets | SwiftUI by Example

How to present a new view using sheets
How to present multiple sheets | SwiftUI by Example

How to present multiple sheets
SwiftUI tips and tricks | SwiftUI by Example

SwiftUI tips and tricks
Displaying a detail screen with NavigationLink | SwiftUI by Example

Displaying a detail screen with NavigationLink
How to use decorative images to reduce screen reader clutter | SwiftUI by Example

How to use decorative images to reduce screen reader clutter

이찬희 (MarkiiimarK)
Never Stop Learning.