UIAlertAction 可以触发函数吗?
Can a UIAlertAction trigger a function?
是否可以将函数连接到 UIAlertAction
?
那么在用户点击 OK 按钮后它会执行一个操作吗?这不是handler参数的作用吗?
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)
}
You need to enter the handler
let okButton = UIAlertAction(title: "OK", style: .Default, handler: {
(UIAlertAction) in
self.backToLogin()
})
}
查看此答案了解更多信息:Writing handler for UIAlertAction
您可以将函数用作 handler
,但它需要具有正确的类型。此外,当你将它作为参数传递时,你不能调用它,即,而不是 handler: backToLogin()
(这将设置 return 值 的 backToLogin
作为处理程序)你会 handler: backToLogin
没有 ()
.
以下应该有效:
func backToLogin(alertAction: UIAlertAction) {
self.performSegueWithIdentifier("toLoginPage", sender: self)
}
let okButton = UIAlertAction(title: "OK", style: .Default, handler: backToLogin)
但是必须更改 backToLogin
可能会破坏目的,因此您可以只使用闭包:
let okButton = UIAlertAction(title: "OK", style: .Default) { _ in
self.backToLogin()
}
是否可以将函数连接到 UIAlertAction
?
那么在用户点击 OK 按钮后它会执行一个操作吗?这不是handler参数的作用吗?
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)
}
You need to enter the handler
let okButton = UIAlertAction(title: "OK", style: .Default, handler: {
(UIAlertAction) in
self.backToLogin()
})
}
查看此答案了解更多信息:Writing handler for UIAlertAction
您可以将函数用作 handler
,但它需要具有正确的类型。此外,当你将它作为参数传递时,你不能调用它,即,而不是 handler: backToLogin()
(这将设置 return 值 的 backToLogin
作为处理程序)你会 handler: backToLogin
没有 ()
.
以下应该有效:
func backToLogin(alertAction: UIAlertAction) {
self.performSegueWithIdentifier("toLoginPage", sender: self)
}
let okButton = UIAlertAction(title: "OK", style: .Default, handler: backToLogin)
但是必须更改 backToLogin
可能会破坏目的,因此您可以只使用闭包:
let okButton = UIAlertAction(title: "OK", style: .Default) { _ in
self.backToLogin()
}