第二次点击后有时会调用 UITableView didSelectRowAtIndexPath

UITableView didSelectRowAtIndexPath sometimes called after second tap

我遇到了一种奇怪的 UITableView 行为,我不知道这是从哪里来的。 我正在构建一个非常简单的单一视图 IOS8 Swift 应用程序,第一个 ViewController 里面有一个 UITableView 和一个自定义图像单元格。当我点击一个单元格时,它会转到我的 SecondViewController.

我的 UITableView 委托和数据源连接到第一个 ViewController。 一切正常,除了当我点击一个单元格时,有时我必须点击它两次才能触发 Segue。

这是我的 didSelectRowAtIndexPath 函数:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    println("You clicked on \(indexPath.row) row")
    self.performSegueWithIdentifier("homeToDetail", sender:self)
}

我的打印总是返回正确的 indexPath。 是视图层次问题还是其他问题?

谢谢京东

试试这个。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
  dispatch_async(dispatch_get_main_queue(), {
    self.performSegueWithIdentifier("homeToDetail", sender:self)
  })
}

我认为这是 iOS 8 中的错误。 UITableViewCell selection Storyboard segue is slow - double tapping works though

您必须致电 [tableView deselectRowAtIndexPath:indexPath animated:YES]; 才能解决此问题