为什么initWithStyle中的UITableViewCell是reuseIdentifier(null):reuseIdentifier?

时间:2013-12-27 05:06:57

标签: ios objective-c uitableview

我有一个基于xib的自定义UITableviewCell,我想用于2个单独的reuseIdentifier。

我在表视图控制器中为这两个标识符注册了nib,如下所示:

[self.tableView registerNib:[ExpandingCell nib] forCellReuseIdentifier:ExpandingCellIdentifier];
[self.tableView registerNib:[ExpandingCell nib] forCellReuseIdentifier:InfoCellIdentifier];

tableView:cellForRowAtIndexPath:中,我称之为以下方法之一:

- (ExpandingCell *)infoCellForIndexPath: (NSIndexPath *)indexPath {       
    ExpandingCell *cell = [self.tableView dequeueReusableCellWithIdentifier:InfoCellIdentifier forIndexPath:indexPath];        
    return cell;
}

- (ExpandingCell *)expandingCellForIndexPath: (NSIndexPath *)indexPath {    
    ExpandingCell *cell = [self.tableView dequeueReusableCellWithIdentifier:ExpandingCellIdentifier forIndexPath:indexPath];       
    return cell;    
}

每个格式都有不同的格式,我希望在单元格的init方法中使用该代码,而不必在表格视图控制器中进行。

然后在ExpandingCell.m中:

+ (UINib *)nib {
    return [UINib nibWithNibName:@"ExpandingCell" bundle:nil];
}

  - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {           
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if (self) {
            // Initialization code

            NSLog (@"identifier: %@", reuseIdentifier); //logs: identifier: (null)

            if (reuseIdentifier == InfoCellIdentifier) {
                // configure for info cell...

            } else { //default expanding
                //configure for default cell....
            }
        }    
        return self;
    }

我遇到的问题是在initWithStyle中:reuseIdentifier始终为null。 我错过了什么?

0 个答案:

没有答案