How to present a full screen modal view using fullScreenCover()
About 2 min
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