У меня есть Search Bar
с UITableView
, и если я что-то ищу в панели поиска, он выведет результат в табличном представлении.
Если я найду имя, подобное «Имя 01», и янажмите на это имя, чтобы получить информацию, а затем я снова открою панель поиска и попытаюсь найти другое имя, например «Имя 02», в табличном представлении я увижу результат «Имя 01» и не знаю, как его очистить.Это.
Я также пытался обновить табличное представление, но безуспешно.
Видео проблемы: https://streamable.com/98j0w
Код такой
extension LocationSearchTable : UISearchResultsUpdating {
func updateSearchResults(for searchController: UISearchController) {
//print("updateSearchResults")
if searchController.searchBar.text == nil {
seenNames.removeAll()
matchingItems.removeAll()
self.tableView.reloadData()
}
guard let mapView = mapView,
let searchBarText = searchController.searchBar.text else { return }
let request = MKLocalSearchRequest()
request.naturalLanguageQuery = searchBarText
request.region = mapView.region
let search = MKLocalSearch(request: request)
search.start { response, _ in
guard let response = response else {
return
}
for (index , name) in response.mapItems.enumerated() {
let item = response.mapItems[index]
if(checkIfItemExistInDatabase(key: String(item.name!)) != nil && !seenNames.contains(name.name!)){
matchingItems.append(item)
seenNames.insert(name.name!)
self.tableView.reloadData()
}
}
}
}
}
Я хочу, чтобы при проведении исследования результат просмотра таблицы с текстом панели поиска очищался и не отображал ранее полученный результат