You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying to show multiple cells and their own data models in the same tableView. I added segment control for this and I delete all tableview current data and removed the current data sources and binding new data and its cell. But I am getting the below error message :( If you have any offers please help me :(
P.s: Each segment's cells and sections design is different than each other. Error: Thread 1: "attempt to insert section 0 but there are only 0 sections after the update"
In View Model
private func bindSelectedSegmentIndex() {
/// reset pagination and limit for new request
selectedSegmentIndex
.observe(on: MainScheduler.instance)
.do(onNext: { _ in
/// remove all old api data in tableviews
self.transactionsAndDepositsTableViewData.accept([])
self.contractsTableViewData.accept([])
self.pagination = Pagination()
self.updateTableViewDataSource.accept(())
})
.subscribe(onNext: { [weak self] _ in
guard let self = self else {return}
switch self.selectedSegmentIndex.value {
case 0,1:
self.callUserTransactionsAndDeposits()
case 2:
self.getContracts()
default:
return
}
})
.disposed(by: disposeBag)
}
In ViewController:
@IBAction func segmentControlChanged(_ sender: UISegmentedControl) {
self.hapticImpactMedium()
let selectedIndex = sender.selectedSegmentIndex
self.viewModel.selectedSegmentIndex.accept(selectedIndex)
}
fileprivate func setupTransactionsAndDepositsDataSource() {
transactionsTableViewDataSource = TableViewSectionedAnimatedDataSourceWithRx(cell: WithdrawAndDepositCell.self,
data: WithdrawAndDepositSection.self)
transactionsTableViewDataSource?.handleCell = { cell ,item in
cell.item = item
}
transactionsTableViewDataSource?.dataSource.titleForHeaderInSection = { dataSource, index in
return dataSource.sectionModels[index].header
}
}
fileprivate func setupContractsDataSource() {
contractsTableViewDataSource = TableViewSectionedAnimatedDataSourceWithRx(cell: ContractTableViewCell.self,
data: ContractTableSection.self)
contractsTableViewDataSource?.handleCell = { cell ,item in
cell.item = item
}
contractsTableViewDataSource?.dataSource.titleForHeaderInSection = { dataSource, index in
return dataSource.sectionModels[index].header
}
}
private func setDataSources(with index: Int) {
/// remove old dataSource and update new one
tableView.dataSource = nil
tableView.delegate = nil
switch index {
case 0,1 :
setupTransactionsAndDepositsDataSource()
/// Bind tableViewData to the tableView items for transactionsTableViewDataSource
viewModel.transactionsAndDepositsTableViewData.asDriver()
.drive(tableView.rx.items(dataSource: transactionsTableViewDataSource.dataSource))
.disposed(by: disposeBag)
case 2:
setupContractsDataSource()
/// Bind tableViewData to the tableView items for clientsTableViewDataSource
viewModel.contractsTableViewData.asDriver()
.drive(tableView.rx.items(dataSource: contractsTableViewDataSource.dataSource))
.disposed(by: disposeBag)
default : break
}
}
The text was updated successfully, but these errors were encountered:
I'm trying to show multiple cells and their own data models in the same tableView. I added segment control for this and I delete all tableview current data and removed the current data sources and binding new data and its cell. But I am getting the below error message :( If you have any offers please help me :(
P.s: Each segment's cells and sections design is different than each other. Error: Thread 1: "attempt to insert section 0 but there are only 0 sections after the update"
In View Model
In ViewController:
The text was updated successfully, but these errors were encountered: