2011-02-24 58 views

回答

4

您可以添加一个指向UITableView的实例变量,并在创建/配置单元格时设置它(例如在tableView:cellForRowAtIndexPath :)中。确保你的单元格不保留tableView。 了解你的电池的的tableView,调用[parentTableView上海华]进入的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; 
} 

UPDATE:

如果你使用近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这个小区属于。

+0

感谢您的答复,但ü可以给我解释一下这个地方去--------- @interface PropertyListingCell:{UITableViewCell的__weak ID parentTableView; } - (void)setParentTableView:(UITableView *)tv; // parentTableView = tv; – user591375 2011-02-28 10:03:36

+0

顶部块中的代码显示了您必须添加到自定义UITableViewCell头文件(例如MyTableViewCell.h)中的内容。 '(id)parentTableView;'基本上是一个指向自定义表格单元实现中的tableView的指针。 'setParentTableView'是一个将指针设置为表视图的方法 - 您应该将其添加到自定义表单元格实现中(例如MyTableViewCell.m)。现在,当你在你的UITableViewController子类中创建自定义单元格的实例时,你可以调用你的单元格的'setParentTableView'方法并设置指向这个单元格所属的UITableView的指针。 – kervich 2011-03-09 19:19:50

相关问题