Swiftui 可从外部类表示的UI。。。可能吗?

Swiftui 可从外部类表示的UI。。。可能吗?,swiftui,Swiftui,我正在处理一个可代表性的问题 我有一个像这样的角色 struct MyRepresentable: UIViewControllerRepresentable { func makeCoordinator() -> Coordinator { Coordinator(self) } class Coordinator: NSObject, UIScrollViewDelegate { var control: MyScrollView   init(

我正在处理一个可代表性的问题

我有一个像这样的角色

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.Coordinator”类型的返回表达式


有什么想法吗?

使返回类型对齐,如

  func makeCoordinator() -> MyExternalCoordinator {
    MyExternalCoordinator()
  }

传递给不带参数的调用的参数修复很明显,已更新。但这对你的问题很重要-这是类型对齐。啊,很好,但这不是直观的。理论上,MyExternalCoordinator应该是Coordinator的一个子类,但事实并非如此。它是NSObject的一个子类。谢谢