提问者:小点点

我需要在单击


我有了这个tableView,当我点击一个单元格时,它会给我这个单元格的名称,然后我把它传递给下一个视图,但问题是我需要覆盖“DidSelectRowat”函数中的segue函数,我想这是不可能的,有什么建议吗?

          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个答案

匿名用户

两种解决方案:

>

  • 重新将segue连接到单元(而不是控制器),并实现

    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]
    }
    

    调用DIDSelect中的PerformSegue(用实际值替换标识符字符串)

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

    并将准备(用于更改为

    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

    注意:请遵守命名约定,以小写字母开头命名变量。