我有一个tableview使用UIButton在自定义的UITableViewCell触发我的视图控制器中的IBAction。在IOS7中,我能够通过执行UITableViewCell *clickedCell = (UITableViewCell *)[[[sender superview] superview]superview]
来引用触发操作的特定单元。从IBAction获取对UITableViewCell的引用?
这在iOS7中运行良好,但它似乎在iOS8中需要将superview
之一移除以返回该单元格,否则返回nil。所以我现在就是这样做的,而且它工作正常,但我想知道是否有更清晰的方法来实现这一点。我只是不喜欢这个样子。
UITableViewCell *clickedCell;
if (SYSTEM_VERSION_LESS_THAN(@"8.0")) {
clickedCell = (UITableViewCell *)[[[sender superview] superview]superview];
}
else{
clickedCell = (UITableViewCell *)[[sender superview]superview];
}
更好的方法是搜索按钮的超级视图直到找到该单元格。看看我的答案在这里,http://stackoverflow.com/questions/22949304/get-uitableviewcell-of-uibutton/22950960#22950960 – rdelmar 2014-10-04 22:23:55
奇怪我得到'属性'superview'找不到类型的对象'__strong id' 'on'superView = sender.superview',这是没有道理的,因为它不知道它是什么类,它怎么知道它做了什么和没有? – 2014-10-05 12:59:34