在 Bond5 tableview/collectionview 绑定中传递代理数据源

Passing a proxy data source in Bond5 tableview/collectionview binding

使用 Bond 4.x 可以在将 tableview 绑定到 ObservableArray 时传递我的自定义数据源,以便像这样实现 UICollectionViewDataSource 方法(例如 viewForSupplementaryElementOfKind)的自定义调用:

viewModel.dataSource.bindTo(collectionView, proxyDataSource: HeaderViewCreator()) { indexPath, dataSource, tableView

这在 Bond5 中现已消失,因为尝试使用 proxyDataSource 参数会导致编译器错误,期望在调用中使用不同的参数标签。

不幸的是,我在迁移指南中找不到合适的部分,而且我也很难理解这方面的文档。 BNDTableViewProxyDataSource 和朋友似乎完全从代码库中消失了。

感谢您的帮助!

UITableView 和 UICollectionView 现在具有类型为 ProtocolProxy 的属性 bnd_delegatebnd_dataSource。该类型有一个 属性 forwardTo,您可以将其设置为接收 ProtocolProxy(即 Bond)未使用的委托或数据源回调。

例如:

class MyViewController: UITableViewDelegate {

  var tableView: UITableView

  func viewDidLoad() {
    super.viewDidLoad()
    tableView.bnd_delegate.forwardTo = self
  }
}