SwiftUIでアラートを表示する方法【SwiftUI入門】

※本記事は旧記事になります。より詳細に解説しているこちらの記事を是非ご覧ください。

今回は、アラート(ポップアップ)の表示方法についての手順を書いてみようと思います。SwiftUIでは「Alert」を使いますが、UIKitで言うところのUIAlertControllerにあたります。

SwiftUIでアラートを表示する方法

ボタン1つのみのコード例

struct ContentView: View {
    
    @State private var isShowAlert = false
    
    var body: some View {
        Button(action: {
            self.isShowAlert = true
        }) {
            Text("タップしてアラートを表示。")
        }
        .alert(isPresented: $isShowAlert) {
            Alert(title: Text("タイトル"),
                  message: Text("アラートメッセージです。"),
                  dismissButton: .default(Text("OK")))
        }
    }
}

@StateプロパティのBool変数を定義し、Buttonのalertメソッドの「isPresented:」引数に紐づけています。

Buttonをタップした際のアクションでisShowAlertをtrueにすることで.alertの中かっこ内が実行され、Alertが表示される仕組みです。

以下、実行結果です。

選択肢アラートのコード例

続いて、2つのボタンがある選択アラートの表示例です。

struct ContentView: View {
    
    @State private var isShowSelect = false
    
    var body: some View {
        VStack {
            Button(action: {
                self.isShowSelect = true
            }) {
                Text("タップしてアラートを表示。")
            }
            .alert(isPresented: $isShowSelect) {
                Alert(title: Text("決断"),
                      message: Text("会社員辞めますか?"),
                      primaryButton: .default(Text("いいえ")),
                      secondaryButton: .default(Text("はい")) {
                    // 「はい」を選択した場合の処理
                })
            }
        }
    }
}

「primaryButton:」が左側のボタン、「secondaryButton:」が右側のボタンとなります。

以下、実行結果です。

連続でアラートを表示する方法が、まだちょっとわからないので、分かり次第追記しようと思います。

以上、SwiftUIのアラート表示方法でした。