0

中にUITableViewカスタムセルがあり、それらのセルをUIButtonタップすると詳細ビューがトリガーされます。セル自体をタップしてもセグエはトリガーされません。つまり、didSelectRowAtIndexPath呼び出されることはありません。

これを実装する前は、配列内のindexPathを介して詳細ビューに渡されるオブジェクトを設定するために使用しdidSelectRowAtIndexPathていました。現在使用していないため、indexPathにアクセスできません。NSFetchedResultsControllerfetchedObjectsdidSelectRowAtIndexPath

すでにボタンのを使ってみましたtagが、を保存できないので、セグエの前indexPathに電話するとうまくいきません。objectAtIndexPathまた、ボタンにアクセスしてそのボタンsuperviewを取得しようとしましindexPathたが、それも機能せず、常にnilでした。

どちらがプッシュされたかを他にどのように知ることUIButtonができるので、正しいオブジェクトを詳細コントローラーに渡すことができますか?

編集:UIButtonプロパティを追加するカテゴリを追加するというアイデアを考えましたindexPathが、メソッドがそれに付随することを期待しているため、これを行うのに問題があります。このアプローチは機能しますか?

4

2 に答える 2

2

ボタンのスーパービュー(またはボタンのスーパービューのスーパービュー)に従ってセルを取得し、テーブルビューからセルのインデックスパスを取得します

于 2013-03-03T16:42:06.187 に答える
0

ボタンをタップしたときに呼び出されるメソッドに次を追加して修正しました。

UIView *contentView = (UIView *)[sender superview];
UITableViewCell *cell = (UITableViewCell *)[contentView superview];
NSIndexPath *indexPath = [self.tableView indexPathForCell: cell];
_quote = [self.fetchedResultsController objectAtIndexPath: indexPath];
[self performSegueWithIdentifier: @"ViewDetail" sender: nil];
于 2013-03-03T16:37:40.993 に答える