第二个调用
.alert(isPresented)覆盖了第一个。您真正想要的是
Binding<Bool>指示是否显示警报,以及应该从闭包后面返回警报的某种设置
.alert(isPresented)。您可以为此使用Bool,但是我继续使用枚举来完成此 *** 作,因为它扩展为两个以上的警报。
enum Activealert { case first, second}struct ToggleView: View { @State private var showalert = false @State private var activealert: Activealert = .first var body: some View { Button(action: { if Bool.random() { self.activealert = .first } else { self.activealert = .second } self.showalert = true }) { Text("Show random alert") } .alert(isPresented: $showalert) { switch activealert { case .first: return alert(title: Text("First alert"), message: Text("This is the first alert")) case .second: return alert(title: Text("Second alert"), message: Text("This is the second alert")) } } }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)