У меня есть UITableView с панелью поиска в виде заголовка. Я использую эту функцию для обновления моих данных, когда пользователь выполняет поиск в строке поиска.Дважды нажмите, чтобы выбрать элемент TableView с помощью панели поиска
func updateSearchResults(for searchController: UISearchController) {
if let searchText = searchController.searchBar.text {
if (searchText.characters.count > 0) {
self.filteredResults = [];
self.locationManager?.geocodeAddressString(addressString: searchText, completionHandler: { (results, error) in
if error == nil && results != nil {
self.filteredResults = results!;
self.tableView.reloadData();
}
});
}
else {
self.filteredResults = [];
self.tableView.reloadData();
}
}
}
и эта функция, когда я выбираю ячейку в своем UITableView.
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.delegate?.setCity(city: str);
self.dismiss(animated: true, completion: nil);
}
Вот моя проблема: контроллер вида не отклоняется при первых нажатиях на ячейку. Я один раз ударяю, панель поиска уходит в отставку. И мне нужно дважды нажать, чтобы выполнить увольнение.
Вот как связать мой TableView и мой строку поиска в viewDidLoad:
// Search Bar componants
self.searchController = UISearchController(searchResultsController: nil);
self.searchController.delegate = self;
self.searchController.searchResultsUpdater = self;
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.dimsBackgroundDuringPresentation = false;
self.searchBar = self.searchController.searchBar;
self.searchBar.searchBarStyle = .default;
self.searchBar.delegate = self;
self.searchBar.placeholder = NSLocalizedString("search.city", comment: "search.city").capitalized;
self.tableView = UITableView(frame: CGRect.zero, style: .plain);
self.tableView.translatesAutoresizingMaskIntoConstraints = false;
self.tableView.delegate = self;
self.tableView.backgroundColor = UIColor.white;
self.tableView.dataSource = self;
self.tableView.tableHeaderView = self.searchBar;
self.view.addSubview(self.tableView);
Если кто-то может помочь мне, что было бы здорово :)
Просто выстрел в темноте, если вы переключитесь заявления и смещать точку зрения первого, он работает, как ожидалось? – dstepan
Нет. Я действительно выгляжу, как первые краны просто заканчивают редактирование строки поиска. –
Если вы установите контрольную точку в 'didSelectRowAt', точка останова попадет в первый раз? – dstepan