2015-01-12 6 views
8

私は好奇心が強いUITableViewの動作に直面していますが、これはどこから来ているのかわかりません。 最初のViewControllerとその内部にUITableViewという1つのカスタムImageセルを持つ非常にシンプルなシングルビューIOS8 Swiftアプリケーションを構築しています。私がセルをタップすると、それは私のSecondViewControllerに繋がります。UITableView didSelectRowAtIndexPathは、2回目のタップ後に呼び出されることがあります。

私のUITableViewデリゲートとデータソースは、最初のViewControllerに接続されています。 私はセルをタップするとき以外はすべて動作しています。時にはSegueをトリガーするために2回タップする必要があります。

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

マイプリントが常に正しいindexPathを返して:ここでは

は私didSelectRowAtIndexPath機能です。 ビュー階層の問題なのでしょうか?

ありがとうございます。JD

+0

を修正するために[tableView deselectRowAtIndexPath:indexPath animated:YES];を呼び出す必要がありますか?これはシミュレータかリアルデバイス上ですか? – Woodstock

+0

シミュレータと実デバイス –

+0

'println'は1回だけ、あるいは2回だけトリガされますか? – pbasdf

答えて

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

+0

興味深いので、メインキューにコールをプッシュすることはバグの回避策ですか? – Woodstock

+0

それは他の2人の男のために働いたものです。奇妙な。 – rakeshbs

+0

これで正常に動作しています! –

0

あなたはもう少しコードを共有することができ、興味深いこの

関連する問題