Во-первых, Observables, Subjects и Relays никогда не должны быть в var
, они всегда должны быть let
s.
Теперь, чтобы решить вашу проблему ... Я ожидал увидеть код это примерно так:
let dateText = PublishSubject<String>()
let date = tableView.rx.itemSelected
.filter(isDateTableView)
.flatMapFirst { [unowned self] (_) -> Driver<Date> in self.getDate() }
date
.map { dateFormatter.string(from: $0) }
.bind(to: dateText)
.disposed(by: disposeBag)
let dataSource = RxTableViewSectionedReloadDataSource<SectionModel<String, Int>>(configureCell: { dataSource, tableView, indexPath, item in
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! ExampleTableViewCell
if isDateTableView(indexPath) {
dateText
.bind(to: cell.textField.rx.text)
.disposed(by: cell.disposeBag)
}
return cell
})
Driver.just([SectionModel<String, Int>(model: "test", items: [12])])
.drive(tableView.rx.items(dataSource: dataSource))
.disposed(by: disposeBag)
Весь приведенный выше код (включая определение dateText
) будет go в вашем viewDidLoad
или функции, которую вызывает viewDidLoad.