3

我在自定义单元格中有一个按钮。当点击按钮时,通过模态 segue 呈现一个视图。

所以,这是我的问题,在 prepareForSegue:sender: 我想拉出包含我按下的按钮(发件人)的单元格的 indexPath。如何获取该单元格的 indexPath?

我以为我可以做类似的事情:

UITableViewCell * cell = sender.parent 

显然它不是那样工作的。

请帮帮我。

更新感谢@rmaddy,我已经尝试[[sender superview] superview]并到达了按钮所在的单元格以及它的indexPath。谢谢你们的回答!

4

5 回答 5

7

假设senderUIVIew某种类型的 a (例如 a UIButton),那么:

UIView *parentView = [(UIView *)sender superview];

如果您确定按钮的超级视图是表格单元格,那么您可以执行以下操作:

UITableViewCell *cell = (UITableViewCell *)[(UIView *)sender superview];

获得单元格后,请使用表格视图的indexPathForCell:方法。

请记住,如果您实际上将按钮添加到单元格contentView或单元格的其他子视图中,那么从按钮中获取单元格会有点棘手。

于 2013-02-07T17:10:32.993 回答
1

superview您可以使用该属性访问视图的超级视图,以便

sender.superview
于 2013-02-07T17:10:19.950 回答
0

只需添加 cellForRow... 方法

cellButton.tag = indexPath.row;

并在按下此按钮或您有该按钮的参考时取回它

于 2013-02-07T17:12:17.887 回答
0

试试这个

UIButton *btn = (UIButton*)sender;
UITableViewCell * cell = (UITableViewCell*)[btn superview];
NSIndexPath *indx = [myTable indexPathForCell:cell];
于 2013-02-07T17:14:04.907 回答
0

单元格中添加了一个隐藏元素:UITableViewCellScrollView。在和 内容视图UITableViewCellScrollView之间添加。UITableViewCell第一个发送者超级视图将返回一个UIView与内容视图对应的对象。第二个 superview 将返回 an UITableViewCellScrollView,第三个 superview 将返回UITableViewCell。然后使用该indexPathForCell方法获取单元格的索引。

UITableViewCell *cellView = (UITableViewCell *)[[[sender superview] superview] superview];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cellView];
于 2014-08-25T18:30:14.177 回答