Iphone 如何在TableView的单元格中获取容器UITableView

Iphone 如何在TableView的单元格中获取容器UITableView,iphone,cocoa-touch,uitableview,Iphone,Cocoa Touch,Uitableview,是否有任何方法可以访问单元格中包含当前UITableViewCell的UITableView?您可以向上查看视图层次结构,直到找到UITableView: UIView *v = self; while (v && ![v isKindOfClass:[UITableView class]]) v = v.superview; // v now holds the table view, or nil if there isn't one 尽管您可能会问

是否有任何方法可以访问单元格中包含当前UITableViewCell的UITableView?

您可以向上查看视图层次结构,直到找到UITableView:

    UIView *v = self;
    while (v && ![v isKindOfClass:[UITableView class]]) v = v.superview;
    // v now holds the table view, or nil if there isn't one
尽管您可能会问,为什么单元格需要插入表视图,以及是否有更直接的方法来执行此操作。

对于iOS 8+:

UITableView *tableView = cell.superview.superview;

是的,它是有效的,[self superview]具有相同的效果,另一个问题,我如何获得基本超级视图的视图控制器?@Ron:Simply
[self superview]
可能并不总是有效,如果将来的iOS版本在表视图和单元格之间的层次结构中插入其他视图。您可以(通常)通过查看
nextResponder
是否返回UIViewController而不是UIView来检查视图是否有控制器,但再次问自己为什么要这样做。啊哈,谢谢,这个问题与任何项目或实际实现无关,我只想知道如何做到这一点。非常感谢。