私のアプリでは、 と を使用しUITableView
てUINavigationController
、テーブルの行がタップされたときに、より詳細なビューを表示します (基本的なドリルダウン ルーチン)。
行をタップすると強調表示されますが、デリゲート メソッドtableView:willSelectRowAtIndexPath:
またはtableView:didSelectRowAtIndexPath:
は呼び出されません (デバッガーを使用して検証)。
ここに奇妙な部分があります:
アプリには他にもいくつかのテーブル ビューがあり (それらはドリルダウンしません)、いずれも問題を示していません。
行をすばやく繰り返しタップすると、何度も試行した後 (10 ~ 20 回が正常)、
tableView:willSelectRowAtIndexPath:
呼び出されて処理が正常に続行されますtableView:didSelectRowAtIndexPath:
。この問題は、iOS 6 を実行している (実際にはすべての) iPad でのみ発生します。iOS 5 を実行している iPad、または iOS バージョン 6 を実行しているすべての iPhone で正常に動作します。また、iOS 5 または 6 を使用する iPad シミュレーターでも動作します。
そのため、デリゲート メソッドが呼び出される前に、何かがタップを受け取っているようです。しかし、何?
私は何も使用していないUITapGestureRecognizer
ので、それは問題ではありません。UITableViewControllers
テーブルに複数を使用していないため、これも問題ではありません。