我可以在函数中声明这样的处理程序:
@IBAction func handleActionSheetPressed(sender: UIButton) {
let dismisHandler:(UIAlertAction)->Void = {(action:UIAlertAction) in
self.dismissViewControllerAnimated(true , completion: nil)
}
但是当我在函数之外声明这个处理程序时,我收到了一个错误:
"类型的价值' NSObject - > () - >视图控制器'没有会员 ' dismissViewControllerAnimated' "
有人能告诉我如何在函数之外声明这个处理程序吗?
答案 0 :(得分:1)
您不能在类属性的闭包声明中使用self
实例,因为此变量可以在另一个类上使用。
因此,您必须为要调用的视图控制器添加一个额外的参数。
var dismisHandler:(UIAlertAction, UIViewController)->Void = {(action:UIAlertAction, vc) in
vc.dismissViewControllerAnimated(true, completion: nil)
}