Kod*_*ata 1 uitableview nsindexpath swift
我想实现如果在 tableviewCell 中点击 profileImage 的功能,则转至 detailView。我添加了 tapGesture 但我仍然无法弄清楚如何让 indexPath 传递数据。我试过这样,但应用程序会崩溃。
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "detailSegue" {
            let next: DetailViewController = segue.destination as! DetailViewController
          // pattern1
 let indexPath = tableView.indexPath(for: sender as! CustomTableViewCell)
         // pattern2
        let indexPath = tableView.indexPathForSelectedRow! as NSIndexPath
            next.data = datas[indexPath.row]
        }
    }
我怎样才能解决这个问题?先感谢您!
如果添加
UITapGestureRecognizer到 anUIImageView然后不要忘记将isUserInteractionEnabled属性设置为true。
创建一个变量来存储选定的 indexPath.row 
var selectedCell:Int!
在cellForRow方法中向图像视图添加手势。
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapBtnAction(_:)))
cell.imageView.tag = indexPath.row
cell.imageView.addGestureRecognizer(tapGesture)
在目标方法中执行 segue
func tapBtnAction(_ sender: UITapGestureRecognizer) {
    print("\(sender.view.tag) Tapped")
    self.selectedCell = sender.view.tag
    self.performSegueWithIdentifier("detailSegue", sender: self)
}
在prepareforsegue方法中从数组中获取数据。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
   if segue.identifier == "detailSegue" {
      let next: DetailViewController = segue.destination as! DetailViewController
       next.data = datas[self.selectedCell]
   }
}
| 归档时间: | 
 | 
| 查看次数: | 3429 次 | 
| 最近记录: |