在viewDidLoad中的单元格上设置附件

时间:2014-04-14 09:13:27

标签: ios uitableview data-storage

我有两个表视图控制器," root"和"细节"。在我的根视图中,我有这个单元格,表示" Status"。我需要能够改变它。当我点击它时,我会看到详细视图,其中显示了我可以选择的状态(静态单元格)。单击状态时,会显示复选标记。但是,当先前选择状态时,也需要显示此复选标记。因此,只要我从根视图中进行了搜索,就应该可以看到复选标记。

单击一个单元格后,我就可以在状态旁边显示一个复选标记。但是,当我希望在我搜索时显示复选标记时,它不会显示。这是使用

的代码
- (void) setCheckmarkOnIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

    cell.accessoryType = UITableViewCellAccessoryCheckmark;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self setCheckmarkOnIndexPath:indexPath];
}

- (void)viewDidLoad 
{
    [super viewDidLoad];

    // indexPathForRow set to the third cell to demo
    [self setCheckmarkOnIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]];
}

enter image description here Static cells for Statuses

1 个答案:

答案 0 :(得分:0)

您需要将用户选择存储在某处,并将其传递到控制器中(或根据其保存位置以及拥有该信息的对象在控制器中访问它)。

目前,您没有保存用户选择,因此您无法更新单元格。另请注意,您应该更新viewDidAppear:中的选定单元格,而不是viewDidLoad,并且应该使用tableView:willDisplayCell:forRowAtIndexPath:来正确处理正在滚动的表格视图(以及要替换的单元格) / reused)。