Search code examples
iosswiftrx-swiftrx-cocoa

Reload Tableview using RxSwift


I am using RxSwift for tableview. I need to reload my table each time after getting data from api but I'm failed to do this. I couldn't find any solution for that. Can anybody help?

I have an array of places obtain from response of an Api.I have used this code in view did load, but its is not being called when array is updated.

enter image description here


Solution

  • I have found the issue. My array was not being getting updated correctly. I did the following changes.

    Declare dataSource variable of ModelClass:

    let dataSource = Variable<[SearchResult]>([])
    

    Bind it with the table view right now it is empty:

    dataSource.asObservable().bindTo(ResultsTable.rx.items(cellIdentifier: "SearchCell")){ row,Searchplace,cell in
        if let C_cell = cell as? SearchTableViewCell{
            C_cell.LocationLabel.text = Searchplace.place
        }
    }.addDisposableTo(disposeBag)
    

    Then store my updated array in it that contains the searchPlaces:

    dataSource.value = self.array
    

    Now each time when value of dataSource will be changed, table view will be reloaded.