スポンサーリンク
カメラで招待状のQRコードを読み込んでSwiftUIを使ったアプリを起動させ、アプリがどんな画面を開いていようと招待状に関するアラートを表示させたい、という状況があったので、その実装方法を解説します。
強制アップデートなどでも使えそうですね。
早速実装
こんな感じで、初期画面を書いているエントリーポイントをZStackで囲み、そこにalertモディファイヤを書いておくと、どの画面を開いていても共通のアラートを表示できます。
ZStackで囲んでいない場合は、TopViewが表示している時しかアラートを表示できません。
import SwiftUI
@main
struct hogeApp: App {
@State var showAlert = false
var body: some Scene {
WindowGroup {
// ZStackで初期画面を囲むのがポイント!
ZStack {
TopView()
}
.onOpenURL { (url) in
// 招待状のQRコードの内容を処理するコード
showAlert = true
}
.alert("", isPresented: $showAlert, actions: {
Button("OK") {
print("OK")
}
}, message : {
Text("ようこそ!")
})
}
}
}
スポンサーリンク