我在自定义单元格中有一个按钮。轻敲按钮时,通过模态segue显示视图。
所以,这是我的问题,在prepareForSegue:sender:我想拉出包含我推送的按钮(发送者)的单元格的indexPath。我如何获得该单元格的indexPath?
我以为我可以做类似的事情:
UITableViewCell * cell = sender.parent
显然它不会那样工作。
请帮帮我。
更新感谢@rmaddy我已经尝试了[[sender superview] superview]
并进入了按钮所在的单元格,并进入了indexPath。谢谢你的答案!
答案 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];