Я реализовал панель поиска (UITextField) для tableView и определил тот же массив SectionList
, но не знаю, фильтрация не работает. когда я пытаюсь напечатать IndexData
, у него есть данные, но tableFilterData
пусто.
Это основная строка, которая показывает пустой. tableFilterdata = IndexData.filter({$0.names.contains(searchText) })
var IndexData = [SectionList]()`
var tableFilterdata = [SectionList]()`
var isSearch : Bool! = false`
struct SectionList {
let letter : String
let names : [String]
}
Основные функции
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
searchTxt.resignFirstResponder()
return true
}
public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool{
let searchText = searchTxt.text! + string
print(IndexData)
tableFilterdata = IndexData.filter({$0.names.contains(searchText) })
print(tableFilterdata)
if(tableFilterdata.count == 0){
isSearch = false
}else{
isSearch = true
}
tableView.reloadData()
return true
}