Skip to main content

How to add actions to alert buttons

About 2 minSwiftSwiftUIArticle(s)bloghackingwithswift.comcrashcourseswiftswiftuixcodeappstore

How to add actions to alert buttons 관련

SwiftUI by Example

Back to Home

How to add actions to alert buttons | SwiftUI by Example

How to add actions to alert buttons

Updated for Xcode 15

Not needed from iOS 15 on – you should use buttons directly.

Basic SwiftUI alerts look like this:

Alert(
    title: Text("Important message"),
    message: Text("Wear sunscreen"),
    dismissButton: .default(Text("Got it!"))
)

However, you will often want to attach actions to buttons to perform specific actions when they are tapped. To do that, attach a closure to your button that will be called when it’s tapped, like this:

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

    var body: some View {
        Button("Show Alert") {
            showingAlert = true
        }
        .alert(isPresented:$showingAlert) {
            Alert(
                title: Text("Are you sure you want to delete this?"),
                message: Text("There is no undo"),
                primaryButton: .destructive(Text("Delete")) {
                    print("Deleting...")
                },
                secondaryButton: .cancel()
            )
        }
    }
}

Download this as an Xcode projectopen in new window

There is no way to add more than two buttons to an alert – if you’re looking to do that you should use an action sheet instead.

Similar solutions…
Presenting an alert | SwiftUI by Example

Presenting an alert
How to add a TextField to an alert | SwiftUI by Example

How to add a TextField to an alert
How to show an alert | SwiftUI by Example

How to show an alert
How to add custom swipe action buttons to a List row | SwiftUI by Example

How to add custom swipe action buttons to a List row
How to create a toolbar and add buttons to it | SwiftUI by Example

How to create a toolbar and add buttons to it

이찬희 (MarkiiimarK)
Never Stop Learning.