在 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_delegate
和 bnd_dataSource
。该类型有一个 属性 forwardTo
,您可以将其设置为接收 ProtocolProxy(即 Bond)未使用的委托或数据源回调。
例如:
class MyViewController: UITableViewDelegate {
var tableView: UITableView
func viewDidLoad() {
super.viewDidLoad()
tableView.bnd_delegate.forwardTo = self
}
}
使用 Bond 4.x
可以在将 tableview 绑定到 ObservableArray
时传递我的自定义数据源,以便像这样实现 UICollectionViewDataSource 方法(例如 viewForSupplementaryElementOfKind
)的自定义调用:
viewModel.dataSource.bindTo(collectionView, proxyDataSource: HeaderViewCreator()) { indexPath, dataSource, tableView
这在 Bond5 中现已消失,因为尝试使用 proxyDataSource
参数会导致编译器错误,期望在调用中使用不同的参数标签。
不幸的是,我在迁移指南中找不到合适的部分,而且我也很难理解这方面的文档。 BNDTableViewProxyDataSource
和朋友似乎完全从代码库中消失了。
感谢您的帮助!
UITableView 和 UICollectionView 现在具有类型为 ProtocolProxy
的属性 bnd_delegate
和 bnd_dataSource
。该类型有一个 属性 forwardTo
,您可以将其设置为接收 ProtocolProxy(即 Bond)未使用的委托或数据源回调。
例如:
class MyViewController: UITableViewDelegate {
var tableView: UITableView
func viewDidLoad() {
super.viewDidLoad()
tableView.bnd_delegate.forwardTo = self
}
}