RxSwift
モデル配列をコレクションビューにバインドするために使用しています
特定の indexPath からモデル オブジェクトを取得するにはどうすればよいですか?
私は次のようにバインディングを行っています:
vm.bikeIssueCatagories()
.drive(self.collectionView.rx.items(cellIdentifier: "BikeIssueCategoryCollectionViewCell", cellType: UICollectionViewCell.self)) { row, data, cell in
}.disposed(by: disposeBag)
私の問題の核心は、ユーザーが選択したモデル オブジェクトとセルの両方を取得する必要があるということです。のみを使用collectionView.rx.modelSelected(T.self)
すると、モデル og type が得られますT
。そして呼び出すとcollectionView.rx.itemSelected
、選択したものだけが得られますIndexPath
collectionView.rx.itemSelected.asDriver()
.driveNext { [unowned self] indexPath in
guard let model = try? collectionView.rx.model(at: indexPath) else { return }
guard let cell = self.collectionView.cellForItem(at: indexPath) else { return }
}.disposed(by: disposeBag)
しかし、indexPath でモデルにアクセスしようとすると、エラーが発生します。
タイプ「inout UICollectionView」はプロトコル「ReactiveCompatible」に準拠していません
ただ試している:
let indexPath = IndexPath.init()
self.collectionView.rx.model(at: indexPath)
エラーも表示されます:
メンバー 'model(at:)' へのあいまいな参照
SO ...モデルオブジェクトとユーザーが選択したセルの両方を取得する方法は?