SwiftUIにおけるアラート機能は、Alert構造体を使って簡単に実装することができる。
実装の手順はざっくり以下の流れとなる。
- アラートの表示・非表示を管理する状態変数を定義し、alertモディファイアにバインドさせる
- alertモディファイアにAlert構造体を渡す。
手順はモーダル(ポップアップ)用のsheetモディファイアとほとんど同じだ。
サンプルコード
まずは簡単な実装例を見ていこう。
struct ContentView: View {
@State var showingAlert = false
var body: some View {
Button(action: {
self.showingAlert = true
}) {
Text("アラートを表示する")
}
.alert(isPresented: $showingAlert) {
Alert(title: Text("警告"),
message: Text("植民地が攻撃されています!"),
dismissButton: .default(Text("OK")))
}
}
}
コード解説
まず2行目でアラート表示管理用の状態変数showingAlertを定義。
5行目でアラートを表示させるボタンを定義。
6行目ではボタンが押された時の処理として、showingAlertの値をtrueに変更している。
そして10行目でalertモディファイアの登場。
isPresented引数にshowingAlertを渡し、状態変数がtrueの場合に11行目以降のAlertが表示される。
このコードをXCodeのライブプレビュー機能で実行する。
ボタンをタップすると、
アラートが表示され、dismissButton引数に定義したボタンをタップするとアラートが閉じ、元の画面に戻る。