如何在 RxSwift 中选择当前索引路径?
Posted
技术标签:
【中文标题】如何在 RxSwift 中选择当前索引路径?【英文标题】:How can I select the current index path in RxSwift? 【发布时间】:2020-04-22 13:27:57 【问题描述】:使用 modelSelected() 方法时,我需要在表格视图中选择特定项目。
当我实现 itemSelected() 方法时,我能够使用 index.row
选择项目self.quickLookController.currentPreviewItemIndex = index.row
我现在不知道如何获取我的表格视图的 currentPreviewItemIndex。当我选择它时,它会显示一条消息,指出没有可用的数据。
_ = documentTableView.rx.modelSelected(Structured.self).subscribe(onNext: structured in
if structured is Document
// self.quickLookController.currentPreviewItemIndex = ...
self.parent?.navigationController?.show(self.quickLookController, sender: self)
if structured is Structure
let structure = structured as! Structure
let sb = UIStoryboard(name: "Main", bundle: nil)
let documentViewCtrl = sb.instantiateViewController(withIdentifier: "DocumentListViewController") as! DocumentListViewController
self.treeSource?.select(structure)
documentViewCtrl.treeSource = self.treeSource
documentViewCtrl.navigationItem.title = structure.name
self.navigationController?.pushViewController(documentViewCtrl, animated: true)
)
【问题讨论】:
【参考方案1】:您可以压缩两个 observable item selected 和 modelSelected。
Observable.zip(tableView.rx.itemSelected, tableView.rx.modelSelected(Model.self)).bind
[weak self] indexPath, model in
guard let self = self else return
print(indexPath, model)
self.quickLookController.currentPreviewItemIndex = indexPath.row
.disposed(by: disposeBag)
【讨论】:
以上是关于如何在 RxSwift 中选择当前索引路径?的主要内容,如果未能解决你的问题,请参考以下文章