【SwiftUI】下から出てくるダイアログ、ConfirmationDialogの実装方法を解説

この記事では、ConfirmationDialogについて解説していきます。

ConfirmationDialogというのは、このようなダイアログのことです。

実装方法

以下のように記述します。

struct ContentView: View {
    @State private var showingDialog = false
    
    var body: some View {
        Button("ダイアログ表示") {
            self.showingDialog = true
        }
        .confirmationDialog("タイトル", isPresented: $showingDialog, titleVisibility: .visible) {
            Button("選択肢1") {
				// ここに選択肢1の処理
            }
            Button("選択肢2") {
                // ここに選択肢2の処理
            }
        } message: {
            Text("メッセージ")
        }
    }
}
注意

ConfirmationDialogは、iOS15から導入されたものなので、iOS14以下のOSもサポートしている場合は、if #available(iOS 15.0, *) {をつけなければなりません。

ちなみに、Buttonを以下のようにすると、赤文字で表示されます。

Button("削除", role: .destructive) {
}

キャンセルボタンは自動で生成されますが、自分で上書きしたい場合は、以下のように書きます。

Button("キャンセル", role: .cancel) {
}