Делая UITableView с возможностью поиска таким образом, чтобы при выделении ячейки он переносился в другой ViewController, но индекс ячейки не изменялся - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь сделать UITableView для поиска. Однако, когда новые результаты загружаются после поиска, я хочу, чтобы их исходные indexPaths оставались такими же, как были раньше.

Если я запускаю свой код прямо сейчас, моя первая ячейка имеет индекс 0, и после того, как я что-то ищу, и число возвращаемых ячеек отличается, индекс для первой ячейки по-прежнему равен 0.

1 Ответ

0 голосов
/ 02 мая 2019

ViewController, очевидно, не контроллер представления назначения в раскадровке.

Переопределить prepare(for segue, передать путь индекса как sender и установить там тег, что-то вроде этого

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "gotocompanyfav", sender: indexPath)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "gotocompanyfav" {
        let destinationController = segue.destination as! ViewController
        let indexPath = sender as! IndexPath
        destinationController.searchStruct.buttonTag = indexPath.row
    }
}
...