Мне нужно переопределить функцию перехода после нажатия - PullRequest
0 голосов
/ 21 июня 2020

Итак, у меня есть этот tableView, и я хочу, чтобы при нажатии на ячейку он давал мне имя этой ячейки, и я передаю его следующему представлению, но проблема в том, что мне нужно переопределить функцию перехода внутри функции «didselectrowAt» и это невозможно, я думаю, какие-либо предложения о том, как это сделать?

          func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
                  clickedYear = years[indexPath.row]
        
             }
    
   override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
                let ResumosVC: Resumos2ViewController = segue.destination as! Resumos2ViewController
    
                ResumosVC.Title = clickedYear
            }
   
    

1 Ответ

0 голосов
/ 21 июня 2020

Два решения:

  1. Повторно подключите переход к ячейке (а не к контроллеру) и выполните

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    
        guard let cell = sender as? UITableViewCell, 
              let indexPath = tableView.indexPath(for: cell) else { return }
        let resumosVC = segue.destination as! Resumos2ViewController
        resumosVC.Title = years[indexPath.row]
    }
    
  2. Вызов performSegue в didSelect (замените строку идентификатора реальным значением)

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

    и замените prepare(for на

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    
        guard let indexPath = sender as? IndexPath else { return }
        let resumosVC = segue.destination as! Resumos2ViewController
        resumosVC.Title = years[indexPath.row]
    }
    

clickedYear не требуется в обоих случаях.

Примечание: пожалуйста, соблюдайте соглашение об именах для именования переменных с начальной строчной буквы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...