使用Storyboard自定义UITableViewCell

时间:2012-09-25 09:18:12

标签: ios5 uitableview storyboard

我正在尝试使用故事板制作自定义单元格。 我用Basic单元测试了我的程序并且它有效。 现在我已经创建了一个名为NewsCell的新类,它包含自定义单元格中的不同标签。 我还将该单元格作为NewsCell的子类。小区标识符是“NewsCell”。

这是cellForRowAtIndexPath:方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NewsCell *cell = (NewsCell *)[tableView dequeueReusableCellWithIdentifier:@"NewsCell"]; //signal : SIGABRT
    News *info = [self.news objectAtIndex:indexPath.row];
    cell.titreLabel.text = info.titre;
    cell.descriptionLabel.text = info.description;
    return cell;
}

当我运行我的应用程序时,它在第一个ligne处以信号信号SIGABRT崩溃。 我确信我已在标签和表格视图单元格之间建立了正确的连接。

  

***因未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'NIB数据无效。'

2 个答案:

答案 0 :(得分:13)

我遇到了同样的问题。原来,我在Storyboard文件的Interface Builder Document窗格中检查了“Use Autolayout”。这会在iOS 5上运行时抛出“无效的NIB”错误,因为仅在iOS 6上支持自动布局。

答案 1 :(得分:0)

您尚未为单元格创建实例。尝试为单元格创建实例。

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    NewsCell *cell = (NewsCell *)[tableView dequeueReusableCellWithIdentifier:@"NewsCell"]; //signal : SIGABRT

     if (cell == nil) {
            cell = [[[NewsCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        }
    News *info = [self.news objectAtIndex:indexPath.row];
    cell.titreLabel.text = info.titre;
    cell.descriptionLabel.text = info.description;
    return cell;
}