Я в настоящее время создаю приложение, которое имеет список местоположений в uitableview.Существует также функция фильтрации, позволяющая фильтровать местоположения по категориям.Когда не выполняется фильтрация, uitableviewcell выполняет переход при нажатии, и правильные данные загружаются в целевой viewcontroller.Однако, когда я фильтрую табличное представление, ячейки заполняются правильными данными, но когда я щелкаю по ячейке, конечный контроллер представления всегда загружает данные из первой ячейки в НЕФИЛЬТЕРНОМ табличном представлении.
Код, который я использую:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "shoutoutCell", for: indexPath) as! shoutoutTableViewCell
var shout = shoutout[indexPath.row]
if isFiltering == true {
shout = filteredShoutout[indexPath.row]
} else {
shout = shoutout[indexPath.row]
}
cell.shoutout = shout
cell.showsReorderControl = true
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
var object = shoutout[indexPath.row]
if isFiltering == true {
object = filteredShoutout[indexPath.row]
} else {
object = shoutout[indexPath.row]
}
performSegue(withIdentifier: "shoutoutDetailSegue", sender: object)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "shoutoutDetailSegue" {
if let destination = segue.destination as? shoutoutDetailViewController {
// destination.shoutoutSelected = sender as! object
destination.shoutoutSelected = shoutout[(tableView.indexPathForSelectedRow?.row)!]
}
}
}