我正在构建一个应用程序的自定义对话框,我想在其中使用当用户点击某些内容时调用的闭包,有点像这样:
var modal = ModalDialog(title: "modal title", buttonClick: { () -> Void in
println("clicked")
})
modal.show()
所以我创建了一个名为ModalDialog的类,其中我有一个UITapGestureRecognizer,如下所示:
var modalTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("buttonClickAction:"))
modalView.addGestureRecognizer(modalTap)
我的问题是,由于ARC,当实际识别出点击并且它试图调用buttonClickAction:
时,该类已被取消初始化并且应用程序崩溃。
我如何保持ARC不会对模态进行初始化,直到我明确告诉它为止这样做?
答案 0 :(得分:0)
在视图控制器中保留模态对话框的强大参考。
var dialog : ModalDialog
func show {
// Keep strong reference dialog by property of your view controller
self.dialog = ModalDialog(title: "modal title", buttonClick: { () -> Void in
println("clicked")
})
self.dialog.show()
}