0

UITableView里面有一个带有自定义单元格的单元格,当点击其中的 a 时会触发一个详细视图UIButton。点击单元格本身不会触发 segue,意思didSelectRowAtIndexPath是永远不会被调用。

在实现这一点之前,我didSelectRowAtIndexPath用来设置通过我NSFetchedResultsControllerfetchedObjects数组中的 indexPath 传递给详细视图的对象。由于我现在不使用didSelectRowAtIndexPath,因此无法访问那里的 indexPath 。

我已经尝试过使用tag按钮的 ,但由于它不能存储,所以当我在 segue 之前indexPath调用时,这不起作用。objectAtIndexPath我也尝试访问按钮superview来获取它indexPath,但这也不起作用,总是为零。

我怎么知道哪个UIButton被推送了,以便我可以将正确的对象传递给我的细节控制器?

编辑:我想到了添加一个添加属性的UIButton类别的想法indexPath,但是我在执行此操作时遇到了麻烦,因为它希望有一个方法与之配合。这种方法行得通吗?

4

2 回答 2

2

按照按钮的superview(或按钮的superview的superview)获取Cell并从tableview中获取cell的indexpath

于 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 回答