自定义uitableviewcell无法显示

时间:2013-05-16 08:22:54

标签: iphone objective-c ios6 uitableview storyboard

我创建了一个自定义tableviewcell。该班有3个标签。使用主视图控制器模板开始,我更改了故事板中的默认tableviewcell以引用我的新自定义单元格,我还将类型更改为自定义,并将标识更改为“CustomTableCell”。我还将我的cellForRowAtIndexPath方法修改为以下内容......

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellIdentifier = @"CustomTableCell";

    CustomTableCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (!cell)
    {
        cell = [[CustomTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }

    Item *currentItem = _objects[indexPath.row];
    cell.nameLabel.text = [currentItem name];
    cell.vegLabel.text = @"V";
    return cell;
}

CUSTOM CELL HEADER FILE

#import <UIKit/UIKit.h>

@interface CustomTableCell : UITableViewCell

@property (nonatomic, weak) IBOutlet UILabel *nameLabel;
@property (nonatomic, weak) IBOutlet UILabel *vegLabel;
@property (nonatomic, weak) IBOutlet UILabel *priceLabel;

@end

Eveything似乎在我的故事板中正确连接。当我调试时,我可以看到该单元格具有我的自定义单元格的属性。然而,当我将应用程序的每一行都空白时。 tableviewcell在故事板中使用了正确的标识符。我只是看不出我错过了什么。任何帮助,将不胜感激。感谢。

Identifier in storyboard Connections in storyboard

1 个答案:

答案 0 :(得分:1)

您没有从mainbundle加载自定义单元格。所以你需要加载它。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellIdentifier = @"CustomTableCell";

    CustomTableCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    // Add this line in your code
    cell = [[[NSBundle mainBundle]loadNibNamed:@"CustomTableCell" owner:self options:nil]objectAtIndex:0]; 

    if (!cell)
    {
        cell = [[CustomTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }

    Item *currentItem = _objects[indexPath.row];
    cell.nameLabel.text = [currentItem name];
    cell.vegLabel.text = @"V";
    return cell;
}