我正在与UIRepresentable打交道。
我有一部分像
struct MyRepresentable: UIViewControllerRepresentable {
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
class Coordinator: NSObject, UIScrollViewDelegate {
var control: MyScrollView
Â
init(_ control: MyScrollView) {
self.control = control
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
// User is currently scrolling
}
@objc func handleRefresh(sender: UIRefreshControl) {
sender.endRefreshing()
}
}
问题是,这个协调器内部必须包含的东西是可怕的,很多委托功能。
我试图将其传递到一个单独的文件中,以减少可表示文件的混乱。
然后我创建了一个这样的新文件
class MyExternalCoordinator:NSObject, MyDelegate {
// here goes the monstrous code
}
然后,在我的UIViewRepresentable类中
func makeCoordinator() -> Coordinator {
MyExternalCoordinator()
}
我收到消息了
无法将类型为“MyExternalCoordinator”的返回表达式转换为返回类型“MyRepresentable”。协调员'
有什么想法吗?