对这个问题感到困惑超过两个小时,所以也许有人可以指出我正确的方向......
我有一个导航栏,下面有一个tableViewController。一旦选择了第一行,我就推送一个新的tableViewController,它使用新的闪亮的UINib对象加载自定义表格单元格。
调用cellForRowAtIndexPath并分配一个新行,正确设置它的两个UILabel的值,并返回该单元格。
但是 - 表视图完全是空的。如果我用常规表格单元替换自定义单元格,我会看到单元格。这到底是怎么回事?
一些代码:
在viewdidLoad中:
self.cellNib = [UINib nibWithNibName:@"DetailCell" bundle:nil];
in cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"detailCell";
DetailCell* cell = (DetailCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
[self.cellNib instantiateWithOwner:self options:nil];
cell = tmpCell;
self.tmpCell = nil;
}
cell.fieldName.text = @"field title";
cell.fieldValue.text = @"field value";
return cell;
}
和自定义单元格(也有与之关联的xib文件):
@interface DetailCell : UITableViewCell {
IBOutlet UILabel* fieldName;
IBOutlet UILabel* fieldValue;
}
@property (nonatomic, retain) IBOutlet UILabel* fieldName;
@property (nonatomic, retain) IBOutlet UILabel* fieldValue;
@end
感谢您的帮助。
答案 0 :(得分:1)
对于跟随此主题的任何人,我发现问题是缺少单元格标识符。您需要使用IB为xib文件输入您在rowAtIndex处定义的值。有一个标识符字段。