【SwiftUI】
アラートの使い方(alert)
ボタンを押したらアラートを表示する例付き
投稿日 2023/10/19 更新日 2023/10/19
こんにちは。IT業界歴4年目の「元木皇天」です。
今回はSwiftUIで、アラートを表示する方法について解説いたします。
環境
OS:MacOS Ventura 13.4
Swift:Ver 5.3
Xcode:Ver 14.3.1
alertを表示する方法
SwiftUIでalertを表示するには、「.alert」を使用します。
.alertには主に以下4つのパラメータを指定することで表示することが可能です。
| パラメータ名 | 説明 |
|---|---|
| title | アラートのタイトルとして使用されるテキスト文字列 |
| isPresented | アラートを表示するかどうかを決定するBool値 |
| actions | アラートに表示するボタン |
| message | アラートのメッセージ |
.alert(title, isPresented) {
// actions(ボタン)
} message: {
// message(テキスト)
}
実際に値を設定した場合のコード例
.alert("タイトル", isPresented: $flag){
Button("OK"){
return
}
}message: {
Text("アラートメッセージ")
}
このように.alertを使用することで、簡単にアラートを表示させることができます。
例:ボタンを押したらアラートを表示する
次に実際の例として、ボタンを押したらアラートを表示させる例について紹介いたします。
コードは以下のような感じです。
import SwiftUI
struct ContentView: View {
@State var flag: Bool = false
var body: some View {
Button("アラート表示") {
flag = true
}
.alert("タイトル", isPresented: $flag){
Button("OK"){
print("アラートを表示")
}
}message: {
Text("アラートメッセージ")
}
}
}
アラートを表示するためのBool値は@Stateで宣言しておき、ボタンを押下したタイミングで、変数flagにtrueを設定することでアラートを表示することができます。
※@Stateだけでなく、ObservableObjectやEnvironmentObjectなどで管理することも可能です。
また、アラートに設定するボタンは複数表示させることも可能です。
.alert("タイトル", isPresented: $flag){
Button("OK"){ /*任意の処理を記載*/ }
Button("削除", role: .destructive){ /*任意の処理を記載*/ }
Button("キャンセル", role: .cancel){ /*任意の処理を記載*/ }
}message: {
Text("アラートメッセージ")
}
ボタンにはroleを指定でき、「.destructive」や「.cancel」など役割を設定することで、ボタンの役割を明確にするとともに、デザインを設定することもできます。
まとめ
SwiftUIでアラートを表示させるには、.alertを使用する。