变量未在视图转换时设置

时间:2016-01-31 19:05:48

标签: ios tableview

目前我有一个表视图控制器和一个自定义表视图单元。创建后,第一个表视图单元格属于GroupHeader类,而GroupHeader具有公共groupID变量。但是,当我创建GroupHeader单元格并设置其groupID时,它不会在单元格类中反映此更改。

GroupTableViewController类:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

tableView.allowsSelection = NO;
if(indexPath.section == 0){
    GroupHeader*cell = [[GroupHeader alloc] init];
    cell.groupID = groupID;
    NSLog(@"AAAAA %d",cell.groupID);
    [tableView dequeueReusableCellWithIdentifier:@"group_header"    forIndexPath:indexPath];

    return cell;
}}

GroupHeader类:

-(void)awakeFromNib{
NSLog(@"BBBBB %d",groupID);}

在日志中,AAAAA确实来自BBBBB以及正确的groupID,但BBBBB带有0而不是正确的groupID。我不明白这是怎么回事。

我想要实现的是将groupID传递给单元格,以便在单元格出现在屏幕上之前我可以使用groupID执行操作。但是,当单元格出列时,它似乎会在groupID有机会被传递之前自动调用awakeFromNIB。

1 个答案:

答案 0 :(得分:1)

如果在Interface Builder中正确设置了单元格的标识符,请从dequeueReusableCellWithIdentifier获取单元格并相应地转换对象。

GroupHeader *cell = (GroupHeader *)[tableView dequeueReusableCellWithIdentifier:@"group_header" forIndexPath:indexPath];
cell.groupID = groupID;
NSLog(@"AAAAA %d",cell.groupID);
return cell;