【SwiftUI】モディファイア:alert

基本

アラートとは
ユーザーに通知や確認を促すために使用するモディファイア
ボタンだけでなく、テキストなどにも使用できる

import SwiftUI

struct ContentView: View {
    // アラートの表示フラグ
    @State private var alertFlg = false

    var body: some View {
        Button("アラート表示") {
            // アラートの表示フラグをtrueにする
            self.alertFlg = true
        }

        // フラグがtrueの場合、アラートを表示する
        .alert("タイトル", isPresented: $alertFlg) {
            Button("了解") {
                // 了解ボタンが押された時の処理
                // ボタンが押下されるとフラグが自動でfalseになる
            }
        } message: {
            Text("詳細メッセージ")
        }
    }
}

#Preview {
    ContentView()
}

複数ボタン

3つ以上の場合、縦に表示される

ボタンの表示スタイル

未指定またはnil 標準の表示スタイルで青色表示。
.cancel キャンセル用の表示スタイルで、青色のボールド(太字)表示。
2ボタンの場合は常に左側、3ボタン以上の場合は常に一番下に表示される。
キャンセルボタンは最大1つしか表示されない。
.destructive 削除等の破壊的変更用の表示スタイルで、赤色表示。
キャンセルボタンがない場合、自動的に追加される。(表示はCancel)

import SwiftUI

struct ContentView: View {
    // アラートの表示フラグ
    @State private var alertFlg = false

    var body: some View {
        Button("アラート表示") {
            // アラートの表示フラグをtrueにする
            self.alertFlg = true
        }

        // フラグがtrueの場合、アラートを表示する
        .alert("タイトル", isPresented: $alertFlg) {
            Button("キャンセル", role: .cancel){
            }
            Button("削除", role: .destructive){
            }
        } message: {
            Text("詳細メッセージ")
        }
    }
}

#Preview {
    ContentView()
}