Как я могу выбрать текущий путь индекса в RxSwift? - PullRequest
0 голосов
/ 22 апреля 2020

Мне нужно выбрать конкретный c элемент в моем табличном представлении при использовании метода 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 Ответ

0 голосов
/ 23 апреля 2020

Вы можете выбрать два наблюдаемых элемента и модель, выбранную.

    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)
...