我有一个类,它是自定义模态视图的委托,因此,它具有一种用于关闭模态的方法。我正在扩展该类,并且在扩展中,我有一个接受完成闭包的方法。
我不能写出类的主要实现或模态的实现,只能写扩展。
我想在关闭模态时执行闭包,但是我似乎无法自行解决。可能吗?
这里是我想做的事的一个例子:
extension MyClass {
func method(completion: () -> ()) {
// showing the modal
}
}
extension MyClass: ModalDelegate {
func modalDismissed() {
// here I want to execute the completion passed to method()
}
}
将完成作为变量分配给类属性,如下所示:
class MyClass {
var classCompletion: (() -> ())?
}
extension MyClass {
func method(completion: @escaping () -> ()) {
classCompletion = completion
}
}
extension MyClass: ModalDelegate {
func modalDismissed() {
classCompletion?()
}
}