我有一个基于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。
我错过了什么?