是否可以将功能连接到UIAlertAction
?
因此,在用户点击确定按钮后,它会执行操作吗?这不是处理程序参数的作用吗?
let alert: UIAlertController = UIAlertController(title: "Email already registered", message: "Please enter a different email", preferredStyle: .Alert)
let okButton = UIAlertAction(title: "OK", style: .Default, handler: backToLogin())
alert.addAction(okButton)
self.presentViewController(alert, animated: true, completion: nil)
...
func backToLogin() {
self.performSegueWithIdentifier("toLoginPage", sender: self)
}
答案 0 :(得分:3)
您可以将函数用作handler
,但它需要具有正确的类型。当你把它作为一个参数传递时,你也不能调用它,即,而不是handler: backToLogin()
(将{{1>}的返回值设置为处理程序)你将拥有它没有backToLogin
的{{1}}。
以下内容应该有效:
handler: backToLogin
但是必须改变()
可能会破坏目的,所以你可以使用一个闭包:
func backToLogin(alertAction: UIAlertAction) {
self.performSegueWithIdentifier("toLoginPage", sender: self)
}
let okButton = UIAlertAction(title: "OK", style: .Default, handler: backToLogin)
答案 1 :(得分:0)
You need to enter the handler
let okButton = UIAlertAction(title: "OK", style: .Default, handler: {
(UIAlertAction) in
self.backToLogin()
})
}
有关详细信息,请参阅此答案:Writing handler for UIAlertAction