使用UINib时看不到

时间:2011-04-29 13:47:41

标签: iphone objective-c ios uitableview

对这个问题感到困惑超过两个小时,所以也许有人可以指出我正确的方向......

我有一个导航栏,下面有一个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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

对于跟随此主题的任何人,我发现问题是缺少单元格标识符。您需要使用IB为xib文件输入您在rowAtIndex处定义的值。有一个标识符字段。