创建tableView单元格

时间:2014-08-09 08:19:43

标签: ios uitableview tableview

我正在创建带故事板的自定义UITableViewCell,我创建自定义类并将元素拖动到它,但后来我创建单元格然后它的方法
运行

 cell = [[TestCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];

未初始化的单元格元素。为什么呢?

具有默认实现的类,在storyboard中我引用了测试标签:

@interface TestCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UILabel *test;

我创建了单元格

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellId = @"TestCellIdentifier";

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

    DetailItem *item = _currentItems[indexPath.row];
    cell.test.text = item.title;
    return cell;
}

问题是我创建了单元格,测试UILabel是零。 这是在从第一个UITableViewController到下一个

的segue之后发生的

2 个答案:

答案 0 :(得分:0)

Step1,您可以在if语句中设置断点:

 if (!cell)
    {
=>        cell = [[TestCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
    }

永远不应该触发断点。由于您使用Storyboard和Cell重用标识符设置正确

如果Step1通过,请检查Step2

步骤2,如果您已将故事板中的“测试”UILabel连接到您的TestCell,请检查故事板

答案 1 :(得分:0)

你必须输入像

这样的种姓
 TestCell *cell1 = (TestCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];