如何从该表中的自定义单元格中访问我有UITableView的UIView。我找不到一种方法来做到这一点。 感谢
答案 0 :(得分:5)
您可以添加一个指向UITableView的实例变量,并在创建/配置单元格时设置它(例如在tableView:cellForRowAtIndexPath :)中。确保您的单元格不保留tableView。 知道你的单元格的tableView,调用[parentTableView superView]来访问UITableView的父视图:
@interface PropertyListingCell : UITableViewCell {
__weak id parentTableView;
}
- (void) setParentTableView:(UITableView*)tv; // parentTableView = tv;
在UITableViewController实现中:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//dequeue/create and configure your custom cell here
[cell setParentTableView:tableView];
return cell;
}
<强>更新强>
如果您使用的是最近的XCode(至少4.3),您只需添加
即可@property (weak) UITableView *parentTableView; // use unsafe_unretained instead of weak if you're targeting iOS 4.x
到UITableViewCell子类的@interface
部分。然后,当您创建一个单元格(在tableView:cellForRowAtIndexPath:
中)时,相应地设置此属性:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// ...
//dequeue/create and configure your custom cell here
// ...
cell.parentTableView = tableView;
return cell;
}
在您的单元格类中调用self.parentTableView
以访问此单元格所属的tableView。