同一按钮的SwiftUI多个警报

同一按钮的SwiftUI多个警报,swiftui,Swiftui,下面的代码仅显示错误警报。是否有方法使警报与IF条件匹配 @State var showTrueAlert = false @State var showFalseAlert = false var body: some View { Button(action: { let isTrue = Bool.random() if isTrue { self.showTrueAlert = true print

下面的代码仅显示错误警报。是否有方法使警报与IF条件匹配

@State var showTrueAlert = false
@State var showFalseAlert = false

var body: some View {
    Button(action: {
        let isTrue = Bool.random()
        if isTrue {
            self.showTrueAlert = true
            print("True Alert")
        } else {
            self.showFalseAlert = true
            print("False Alert")
        }
    }) {
        Text("Random Alert")
            .font(.largeTitle)
    }
    .alert(isPresented: $showTrueAlert) {
        Alert(title: Text("True"))
    }
    .alert(isPresented: $showFalseAlert) {
        Alert(title: Text("False"))
    }
}
只能对视图应用一次.alert。创建一个状态,该状态仅处理警报的当前状态,然后创建两个变量,确定按下的是false还是true。也可能只将其存储在一个变量中

struct ContentView6: View {

    @State var showAlert : Bool  = false
    
    @State var showTrueAlert = false
    @State var showFalseAlert = false

    var body: some View {
        Button(action: {
            let isTrue = Bool.random()
            if isTrue
            {
                self.showTrueAlert = true
                self.showAlert = true
                print("True Alert")
            } else {
                self.showFalseAlert = true
                self.showAlert = true
                print("False Alert")
            }
        }) {
            
            Text("Random Alert")
                .font(.largeTitle)
        }
        .alert(isPresented: Binding<Bool>(
            get: {
                self.showAlert
            },
            set: {
                self.showAlert = $0
                self.showTrueAlert = false
                self.showFalseAlert = false
            })) {
            if (showTrueAlert)
            {
                return Alert(title: Text("True"))
            }
            else
            {
                return Alert(title: Text("False"))
            }
          }
      }
}

这回答了你的问题吗?对这些链接非常有用。谢谢