如何使用SwiftUI初始化函数中的警报?

如何使用SwiftUI初始化函数中的警报?,swift,swiftui,Swift,Swiftui,我正在尝试在调用gameOver时添加警报。“警报”初始值设定项的结果未使用。如何初始化我创建的警报 func gameOver() { round = 0 score = 0 self.changeTarget() } 解决方案尝试: func gameOver() { round = 0 score = 0 self.changeTarget() Alert(title: Text("Game Over"), message:

我正在尝试在调用gameOver时添加警报。“警报”初始值设定项的结果未使用。如何初始化我创建的警报

func gameOver() {
    round = 0
    score = 0
    self.changeTarget()
}
解决方案尝试:

func gameOver() {
    round = 0
    score = 0
    self.changeTarget()
    Alert(title: Text("Game Over"),
    message: Text("Thanks for playing"),
    dismissButton: Alert.Button.default( Text("Play Again")))
}

在SwiftUI框架中,您有几个用于实现警报的选项,例如:

func alertitem:绑定,内容:Item->Alert->某些视图,其中Item:可识别

func alertitem:绑定,内容:Item->Alert->某些视图,其中Item:可识别

以下是使用第一个选项的简单示例:

结构GameOverAlert:视图{ @国家私有变量轮=0 @国有私营企业风险值得分=0 @State private var restartGame=false//用于显示警报的变量 var body:一些观点{ VStack{ text圆形:\round Textscore:\score HStack{//使用此样式只是为了简洁 按钮操作:{self.score+=1}{Textadd score} 按钮操作:{self.gameOver}{Textover game} } 分隔符//仅用于显示结果 } .alertisPresented:$restartGame{ Alerttitle:text您的分数是\score,dismissButton:.defaultTextPlay{ 我又玩了 } } } //这里描述了逻辑,但它应该在一些视图模型中,等等 私用func gameOver{ restartGame=true } 二等兵func{ 分数=0 四舍五入=0 } } 使用上面的代码,您将实现以下目标:


这最终导致显示游戏过度警报

.alert(isPresented: $alertIsVisible) { () -> Alert in
    let roundedValue = sliderValueRounded()
    if self.round == 5 {
        return Alert(title: Text("Game Over"), message: Text("Your score was \(score)."), dismissButton: .default(Text("Play Again")) {
        self.startOver()
        })
    } else {
    return Alert(title: Text(alertTitle()), message: Text("The slider's value is \(roundedValue). \n" + "You scored \(pointsForCurrentRound()) points!"), dismissButton: .default(Text("Play Again")){
        self.changeTarget()
        self.round += 1
        })}
}

好的,当分数达到10分时,我试着让一个按钮出现。我应该把if语句放在按钮{action}的什么地方?@Troy我不明白上面的问题。这样做的目的是在某个地方更改isPresented for alert bool变量,此时将显示alert。例如,您可以将if self.score>=10{self.gameOver}添加到按钮中,这会增加分数,当您达到10I时,警报会显示出来!我对swift和swifftui还是相当陌生的。我试图应用python语法。我会发布我的解决方案。@Ааааааааааааааааааа。我将试着回忆答案并改正它