在tableview cell ios上保存数据

时间:2014-08-14 16:37:16

标签: ios objective-c uitableview missing-data

我是IOS的新手,我又面临另一个问题。当我滚动一个tableview时,如何防止表格单元格中的数据消失。

enter image description here

我使用下面的代码在表格上加载数据......工作正常,但当表格单元格对屏幕不可见时,数据会消失。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    list = [self.listas objectAtIndex:[indexPath row]];
    static NSString *CellIdentifier = @"drop";
    item_drop *cell = (item_drop*) [tabela_listas dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"item_drop" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }
    cell.texto_drop.text = list.nome_lista;
    return cell;
}

在android中我使用了持有者来做到这一点。 IOS上有类似的东西吗?

1 个答案:

答案 0 :(得分:0)

由于您使用的是 UITableViewCell 的自定义子类的可重用单元格,请确保在 UITableView 中注册单元格标识符,并将其与您的自定义单元格类型相关联。即:

[yourTableView registerClass:[item_drop class] forCellReuseIdentifier:@"drop"];

当您在控制 UITableView 所属视图的 UIViewController 中配置子视图时,通常会执行此操作,在 viewDidLoad 中。

有了它,你就永远不应该点击 if (cell == nil) 内的代码。