我有一个UITableView
里面有自定义单元格,当它们中的UIButton
被点击时会触发详细信息视图。点击单元格本身不会触发segue,这意味着永远不会调用didSelectRowAtIndexPath
。
在实现之前,我使用didSelectRowAtIndexPath
来设置通过我的NSFetchedResultsController
的{{1}}数组中的indexPath传递给详细信息视图的对象。由于我现在没有使用fetchedObjects
,我无法在那里访问indexPath。
我已经尝试使用按钮的didSelectRowAtIndexPath
,但由于它无法存储tag
,因此当我在segue之前调用indexPath
时,这不起作用。我也尝试访问按钮objectAtIndexPath
以获取其superview
,但这也不起作用,总是为零。
我怎么知道推送了哪个indexPath
,以便我可以将正确的对象传递给我的细节控制器?
编辑:我想到了添加UIButton
类别添加UIButton
属性的想法,但是我很难做到这一点,因为它需要一个方法来沿着这个走。这种方法有用吗?
答案 0 :(得分:2)
按照按钮的超级视图(或按钮的超级视图的超级视图)获取Cell并从tableview获取单元格的索引路径
答案 1 :(得分: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];