如何联系发件人的父查看?

时间:2013-02-07 17:06:40

标签: ios objective-c cell

我在自定义单元格中有一个按钮。轻敲按钮时,通过模态segue显示视图。

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

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

UITableViewCell * cell = sender.parent 

显然它不会那样工作。

请帮帮我。

更新感谢@rmaddy我已经尝试了[[sender superview] superview]并进入了按钮所在的单元格,并进入了indexPath。谢谢你的答案!

5 个答案:

答案 0 :(得分:7)

假设sender是某种UIVIew(例如UIButton),那么:

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

如果你肯定按钮的超级视图是表格单元格,那么你可以这样做:

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

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

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

答案 1 :(得分:1)

您可以使用superview属性

访问视图的超级视图
sender.superview

答案 2 :(得分:0)

只需添加cellForRow ...方法

cellButton.tag = indexPath.row;

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

答案 3 :(得分:0)

试试这个

UIButton *btn = (UIButton*)sender;
UITableViewCell * cell = (UITableViewCell*)[btn superview];
NSIndexPath *indx = [myTable indexPathForCell:cell];

答案 4 :(得分:0)

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

UITableViewCell *cellView = (UITableViewCell *)[[[sender superview] superview] superview];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cellView];