每次调用警报时,我的 UIAlertController 都会不断添加新按钮,从而导致无休止的按钮
My UIAlertController keeps adding new buttons each time the alert is called, causing endless buttons
我正在添加警报以防止用户覆盖以前使用的数据,并且我正在使用另一个 post 中推荐的 UIAlertController。涉及的代码如下所示:
var alert:UIAlertController = UIAlertController(title: "Are you sure?", message: "This will overwrite your information", preferredStyle: UIAlertControllerStyle.Alert)
func showAlert() {
alert.addAction(UIAlertAction(title: "Overwrite", style: .Default, handler: { (action:UIAlertAction!) -> Void in
}))
alert.addAction(UIAlertAction(title: "Nevermind", style: .Default, handler: { (action: UIAlertAction!) -> Void in
}))
presentViewController(alert, animated: true, completion: nil)
}
@IBAction func buttonPressed(sender: AnyObject) {
showAlert()
}
第一次出现会正常。第二次会显示四个按钮:
覆盖,没关系,覆盖,没关系。
第三次会显示六个按钮:
覆盖,没关系,覆盖,没关系,覆盖,没关系。
以此类推,永远。是什么原因造成的,我该如何预防?
您有一个变量 alert
,您在代码中的某处对其进行了实例化。
在您的函数 showAlert()
中添加操作(覆盖、没关系),并且每次调用该函数时都执行此操作。
要么将 alert
的实例化移动到 showAlert
中,要么只添加一次操作,在其中实例化 alert
。
func showAlert() {
let alert:UIAlertController = UIAlertController(title: "Are you sure?", message: "This will overwrite your information", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Overwrite", style: .Default, handler: { (action:UIAlertAction!) -> Void in
}))
alert.addAction(UIAlertAction(title: "Nevermind", style: .Default, handler: { (action: UIAlertAction!) -> Void in
}))
presentViewController(alert, animated: true, completion: nil)
}
我正在添加警报以防止用户覆盖以前使用的数据,并且我正在使用另一个 post 中推荐的 UIAlertController。涉及的代码如下所示:
var alert:UIAlertController = UIAlertController(title: "Are you sure?", message: "This will overwrite your information", preferredStyle: UIAlertControllerStyle.Alert)
func showAlert() {
alert.addAction(UIAlertAction(title: "Overwrite", style: .Default, handler: { (action:UIAlertAction!) -> Void in
}))
alert.addAction(UIAlertAction(title: "Nevermind", style: .Default, handler: { (action: UIAlertAction!) -> Void in
}))
presentViewController(alert, animated: true, completion: nil)
}
@IBAction func buttonPressed(sender: AnyObject) {
showAlert()
}
第一次出现会正常。第二次会显示四个按钮:
覆盖,没关系,覆盖,没关系。
第三次会显示六个按钮:
覆盖,没关系,覆盖,没关系,覆盖,没关系。
以此类推,永远。是什么原因造成的,我该如何预防?
您有一个变量 alert
,您在代码中的某处对其进行了实例化。
在您的函数 showAlert()
中添加操作(覆盖、没关系),并且每次调用该函数时都执行此操作。
要么将 alert
的实例化移动到 showAlert
中,要么只添加一次操作,在其中实例化 alert
。
func showAlert() {
let alert:UIAlertController = UIAlertController(title: "Are you sure?", message: "This will overwrite your information", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Overwrite", style: .Default, handler: { (action:UIAlertAction!) -> Void in
}))
alert.addAction(UIAlertAction(title: "Nevermind", style: .Default, handler: { (action: UIAlertAction!) -> Void in
}))
presentViewController(alert, animated: true, completion: nil)
}