2012-01-02 5 views
8

tableViewでセルを選択したいと思います。このコードを使用して正常に動作していますが、一度プログラムによって選択されると、didSelectRowAtIndexPathイベントが発生しません。どうすればそれを起動できますか?文書化されているようにそれが動作しているdidSelectRowAtIndexPathイベントはプログラムで行を選択するとトリガされません

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 
[self.mainTable selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; 

答えて

22

この方法デリゲートがtableView:willSelectRowAtIndexPath:またはtableView:didSelectRowAtIndexPath:メッセージを受信することはありません。またオブザーバーにUITableViewSelectionDidChangeNotification通知を送信します呼び出します。

あなたのセルを選択した後、自分でそれを呼び出します。

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 

[self tableView:self.mainTable willSelectRowAtIndexPath:indexPath]; 
[self.mainTable selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; 
[self tableView:self.mainTable didSelectRowAtIndexPath:indexPath]; 
+0

作業を、今後の旅行のために助け – Jaume

+0

に感謝:これは、これが動作しない理由の偉大な説明ですが、私は、これはもっとあると信じて包括的なソリューション:http://stackoverflow.com/questions/2305781/iphone-didselectrowatindexpath-not-invoked – kbpontius

関連する問題