我是SwiftUI的新手,我想在用户首次启动应用程序时显示警报。如果用户第二次(或第三次)打开应用,则警报将不再出现。
struct ContentView: View {
@State var alertShouldBeShown = true
var body: some View {
VStack {
Text("Hello World!")
.alert(isPresented: $alertShouldBeShown, content: {
Alert(title: Text("Headline"),
message: Text("Placeholder"),
dismissButton: Alert.Button.default(
Text("Accept"), action: {
}
)
)
})
}
}
}
答案 0 :(得分:2)
使用UserDefaults
存储状态值。
这是可能的解决方案。经过Xcode 11.7 / iOS 13.7的测试
struct ContentView: View {
@State var alertShouldBeShown = !UserDefaults.standard.bool(forKey: "FirstStart")
var body: some View {
VStack {
Text("Hello World!")
.alert(isPresented: $alertShouldBeShown, content: {
Alert(title: Text("Headline"),
message: Text("Placeholder"),
dismissButton: Alert.Button.default(
Text("Accept"), action: {
UserDefaults.standard.set(true, forKey: "FirstStart")
}
)
)
})
}
}
}