SwiftUI 如何在单个视图中显示多个 alert?

6 min read

在 SwiftUI 中,如果你需要在单个视图中显示多个 alert,可以通过以下步骤实现:

  1. 声明多个 @State 和 Alert 变量,如:
@State private var showAlert1 = false
@State private var showAlert2 = false

private var alert1: Alert {
    Alert(
        title: Text("Alert 1"),
        message: Text("This is alert 1."),
        dismissButton: .default(Text("OK"))
    )
}

private var alert2: Alert {
    Alert(
        title: Text("Alert 2"),
        message: Text("This is alert 2."),
        dismissButton: .default(Text("OK"))
    )
}
  1. 在适当的位置添加多个按钮,并分别在按钮点击时设置对应的 @State 变量为 true:
Button("Show Alert 1") {
    self.showAlert1 = true
}
Button("Show Alert 2") {
    self.showAlert2 = true
}
  1. 使用对应的 @State 变量和 Alert 变量来显示 alert:
.alert(isPresented: $showAlert1, content: {
    self.alert1
})
.alert(isPresented: $showAlert2, content: {
    self.alert2
})

这样,你就可以在单个视图中显示多个 alert 了。注意,要使用不同的 @State 变量和 Alert 变量来显示不同的 alert。