Вам необходимо установить исходный массив данных.
Причина
На самом деле вы удаляете массив источника данных filteredData.removeAll()
.После этого массив становится пустым, поэтому self.tableView.reloadData()
не работает.
Решение
Вам необходимо сделать копию массива источника данных, скажем, originalData
содержит исходные данные (без фильтра).
Всякий раз, когда вы фильтруете пользователя, вам необходимо использовать originalData
для фильтрации данных.
Для напр.
let filterdData = originalData.filter { //filter data }
Поэтому, когда вы очищаете фильтр, вам нужно снова установить исходные данные в массив источника данных таблицы.
Например,
filteredData.removeAll() //remove all data
filterData = originalData //Some thing that you need to assign for table data source
self.tableView.reloadData()
В таблице cellForRowAt:
получит данные следующим образом...
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var obj = filterData[indexPath.row]
print(obj)
}
Не забудьте присвоить данные originalData
перед фильтром