Alert
Skip support for SwiftUI.Alert ↗.
The following example screens and source code is from SkipUI’s
Showcase sample app
AlertPlayground.swift ↗
import SwiftUI
struct AlertPlayground: View { @State var value = "" @State var error: AlertPlaygroundError? = nil @State var data: Int? = nil @State var titleIsPresented = false @State var titleMessageIsPresented = false @State var twoButtonsIsPresented = false @State var threeButtonsIsPresented = false @State var fiveButtonsIsPresented = false @State var dataIsPresented = false
var body: some View { VStack(spacing: 16) { Text(value).bold() Group { Button("Title") { titleIsPresented = true } Button("Title + Message") { titleMessageIsPresented = true } Button("Two Buttons") { twoButtonsIsPresented = true } Button("Three Buttons") { threeButtonsIsPresented = true } Button("Five Buttons") { fiveButtonsIsPresented = true } } Divider() Group { Text("Present with data") Button("Data: \(String(describing: data))") { if data == nil { data = 1 } else { data = data! + 1 } } Button("Nil data") { data = nil } Button("Present") { dataIsPresented = true } } } .padding() .toolbar { PlaygroundSourceLink(file: "AlertPlayground.swift") } .alert("Title", isPresented: $titleIsPresented) { } .alert("Title + Message", isPresented: $titleMessageIsPresented) { } message: { Text("This is the alert message to show beneath the title") } .alert("Two Buttons", isPresented: $twoButtonsIsPresented) { Button("Option") { value = "Option" } Button("Cancel", role: .cancel) { value = "Custom Cancel" } } .alert("Three Buttons", isPresented: $threeButtonsIsPresented) { Button("Cancel", role: .cancel) { value = "Custom Cancel" } Button("Option") { value = "Option" } Button("Destructive", role: .destructive) { value = "Destructive" } } .alert("Five Buttons", isPresented: $fiveButtonsIsPresented) { Button("Cancel", role: .cancel) { value = "Custom Cancel" } Button("Destructive", role: .destructive) { value = "Destructive" } Button("Option 1") { value = "Option 1" } Button("Option 2") { value = "Option 2" } Button("Option 3") { value = "Option 3" } } .alert("Data", isPresented: $dataIsPresented, presenting: data) { d in Button("Data: \(d)") { value = "\(d)" } Button("Nil Data", role: .destructive) { data = nil } } }}
enum AlertPlaygroundError: LocalizedError { case testError}