我有一个带有原型单元格的UITableView,上面带有一个UISwitch。当用户点击任意特定单元格上的开关时,我需要确定数据源中哪个对象的开关已切换。

这是我的切换方法:

- (IBAction)completeSwitchTapped:(id)sender {
      UITableViewCell *cell = (UITableViewCell *)[sender superview];
      NSIndexPath *indexPath = [self.itineraryTableView indexPathForCell:cell];


      NSLog(@"cell row is: %d in section: %d", indexPath.row, indexPath.section);
}


但这总是返回第0节中的第0行,而不管选择了哪一行或哪一部分。

如何正确返回包含开关的正确单元格?显然[sender superview]无法正常工作,我对于如何引用该单元格相当困惑。

谢谢!

最佳答案

尝试这样的事情:

UIView *superview = sender.superview;
while (![superview isKindOfClass:[UITableViewCell class]] && superview.superview != nil) {
    superview = superview.superview;
}
NSIndexPath *indexPath = [self.itineraryTableView indexPathForCell:superview];

关于ios - 如何确定已轻按的开关的单元格的indexPath?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23575513/

10-13 09:25