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

时间:2015-01-12 16:44:13

标签: ios iphone uitableview swift segue

我面临着一种好奇的UITableView行为,我不知道这是从哪里来的。 我构建了一个非常简单的单视图IOS8 Swift应用程序,其中第一个ViewController内部有一个UITableView和一个自定义Image单元。当我点击一个单元格时,它会查看我的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。 它是视图层次结构问题还是其他什么?

谢谢JD

2 个答案:

答案 0 :(得分:10)

试试这个。

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

答案 1 :(得分:1)

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