Настроил поиск по tableView. все работает, таблица сортируется по результату ввода, но при клике на ячейку приложение падает (fatal error: unexpectedly found nil while unwrapping an Optional value). Без searchBar все кликается, все работает. Как быть? Есть предположение, что виновен imageView, т.к. сортирую таблицу я только по String массиву имен.
func updateSearchResultsForSearchController(searchController: UISearchController) {
self.filteredRal = self.ralNames.filter { (ral: String) -> Bool in
if ral.lowercaseString.containsString(self.searchController.searchBar.text!.lowercaseString) {
return true
} else {
return false
}
}
self.resultsController.tableView.reloadData()
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if tableView == self.tableView {
return self.ralNames.count
} else {
return self.filteredRal.count
}
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "Cell"
let cell = self.tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MainTableViewCell
// Configure the cell...
if tableView == self.tableView {
cell.titleLabel?.text = self.ralNames[indexPath.row]
} else {
cell.titleLabel?.text = self.filteredRal[indexPath.row]
}
cell.cellImage?.image = UIImage(named: ralImages[indexPath.row])
return cell
}
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetailsSegue" {
if let indexPath = self.tableView.indexPathForSelectedRow {
let destinationVC = segue.destinationViewController as! DetailsViewController
destinationVC.ralImage = self.ralImages[indexPath.row]
destinationVC.ralName = self.ralNames[indexPath.row]
}
}