Не могу нажать на ячейки tableView при поиске
Я реализовал searchController, который, кажется, работает с фильтрацией данных, однако кажется, что при поиске применяется своего рода темное наложение, поэтому я не могу щелкнуть по ячейкам? Как это так?
ViewDidLoad
resultSearchController = UISearchController(searchResultsController: nil)
resultSearchController.hidesNavigationBarDuringPresentation = false
resultSearchController.delegate = self
resultSearchController.searchResultsUpdater = self
resultSearchController.searchBar.sizeToFit()
resultSearchController.searchBar.backgroundImage = UIImage()
resultSearchController.searchBar.placeholder = "Søg"
resultSearchController.searchBar.delegate = self
resultSearchController.searchBar.returnKeyType = UIReturnKeyType.Default
resultSearchController.searchBar.delegate = self
let textFieldInsideSearchBar = resultSearchController.searchBar.valueForKey("searchField") as? UITextField
textFieldInsideSearchBar?.backgroundColor = UIColor.whiteColor()
textFieldInsideSearchBar?.clipsToBounds = true
textFieldInsideSearchBar?.layer.cornerRadius = 1
textFieldInsideSearchBar?.layer.borderWidth = 2
textFieldInsideSearchBar?.layer.borderColor = UIColor.whiteColor().CGColor
textFieldInsideSearchBar?.textColor = UIColor.darkGrayColor()
self.tableView.tableHeaderView = resultSearchController.searchBar
definesPresentationContext = true
TableView
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if (self.resultSearchController.searchBar.text?.characters.count > 0) {
return self.filteredTableData.count
}
else {
return self.sortedLocations.count
}
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("HomeCell", forIndexPath: indexPath) as! HomeCell
cell.selectionStyle = UITableViewCellSelectionStyle.None
if (self.resultSearchController.searchBar.text?.characters.count > 0) {
cell.backgroundImage.image = UIImage(data: filteredTableData[indexPath.row].image)
cell.storeNameLabel.text = filteredTableData[indexPath.row].name.uppercaseString
return cell
}
else {
cell.backgroundImage.image = UIImage(data: sortedLocations[indexPath.row].image)
cell.storeNameLabel.text = sortedLocations[indexPath.row].name.uppercaseString
return cell
}
}
func updateSearchResultsForSearchController(searchController: UISearchController)
{
filteredTableData = sortedLocations.filter {
$0.name.localizedCaseInsensitiveContainsString(searchController.searchBar.text!)
}
self.tableView.reloadData()
}
1 ответ
Задавать dimsBackgroundDuringPresentation
из resultSearchController
ложно
resultSearchController.dimsBackgroundDuringPresentation = false