我有一个游戏,当玩家获胜时会显示警报。但是,重新启动游戏后,会显示相同的警报,并显示多个“取消”按钮。就像图片中显示的一样。任何想法可能是什么,
var alertX = UIAlertController(title: "Winner", message: "X Has Won", preferredStyle:.alert)
func AlertPlayer1() {
alertX.addAction(UIAlertAction(title:"CLOSE",style: UIAlertAction.Style.destructive, handler: { (action) in self.alertX.dismiss(animated: true, completion: nil)}))
self.present(alertX, animated:true, completion:nil)
}
然后只要有人获胜,我就只调用该函数
答案 0 :(得分:3)
请按照以下说明更新代码以解决问题。
func AlertPlayer1() {
var alertX = UIAlertController(title: "Winner", message: "X Has Won", preferredStyle:.alert)
alertX.addAction(UIAlertAction(title:"CLOSE",style: UIAlertAction.Style.destructive, handler: { (action) in
self.alertX.dismiss(animated: true, completion: nil)
}))
self.present(alertX, animated:true, completion:nil)
}
您一次创建警报实例,但是此方法AlertPlayer1
从代码中某个位置多次调用,这会添加多个关闭按钮。
注意:按照我已经告诉您的方法,您可以多次调用。因此,此警报还会尝试显示多个时间,但是一次您只能在窗口/屏幕中显示一个视图控制器。因此它将在控制台中向您显示警告。