目前我有一个表视图控制器和一个自定义表视图单元。创建后,第一个表视图单元格属于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。
答案 0 :(得分:1)
如果在Interface Builder中正确设置了单元格的标识符,请从dequeueReusableCellWithIdentifier
获取单元格并相应地转换对象。
GroupHeader *cell = (GroupHeader *)[tableView dequeueReusableCellWithIdentifier:@"group_header" forIndexPath:indexPath];
cell.groupID = groupID;
NSLog(@"AAAAA %d",cell.groupID);
return cell;