带有原型单元格内标签的标签未更新

时间:2015-08-02 21:30:24

标签: ios objective-c uitableview cocoa-touch

我正在尝试为我当前正在构建的应用程序的一部分创建一个清单,并且我在使用viewWithTag:更新原型单元格上的文本时遇到问题。应用程序中的其他所有内容都正常工作,我可以单击正在创建的单元格。

需要使用viewWithTag的两种方法是:

- (void)configureCheckmarkForCell:(UITableViewCell *)cell withChecklistItem:(OTChecklistItem *)item {
    UILabel *label = (UILabel *)[cell viewWithTag:1001];

    if (item.checked) {
        label.text = @"√";
    } else {
        label.text = @"";
    }

    label.textColor = self.view.tintColor; }

- (void)configureTextForCell:(UITableViewCell *)cell withChecklistItem:(OTChecklistItem *)item
{
    UILabel *label = (UILabel *)[cell viewWithTag:1000];
    label.text = item.itemName;
}

这些方法由以下人员调用:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Get a new or recycled cell
    UITableViewCell *cell =
    [tableView dequeueReusableCellWithIdentifier:@"OTChecklistTableViewCell" forIndexPath:indexPath];

    NSArray *items = [[OTChecklistStore sharedStore] allItems];
    OTChecklistItem *item = [items objectAtIndex:indexPath.row];

    [self configureTextForCell:cell withChecklistItem:item];
    [self configureCheckmarkForCell:cell withChecklistItem:item];

    return cell;
}

以下是我的故事板中的一些屏幕截图,显示我的连接和标签应该是正确的。

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

我发现了问题。它奏效了:

  

用于从cellForRow方法中取消单元格的标识符是   不同于界面构建器中设置的那个。看看吧。

更改:

UITableViewCell *cell =
    [tableView dequeueReusableCellWithIdentifier:@"OTChecklistTableViewCell" forIndexPath:indexPath];

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"OTPlansTableViewCell" forIndexPath:indexPath];