使用DidSelectRowAtIndexPath更改NSMutableArray

时间:2012-08-24 08:10:10

标签: objective-c ios xcode uitableview nsmutablearray

我以为我弄清楚自己该怎么做这个问题,但它不起作用。我使用的代码:

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
     //timedText = a NSString

    [timed replaceObjectAtIndex:1 withObject:timedText];
    [SpelerTable reloadData];
}

有人能告诉我我做错了什么吗?另外,我不想使用“replaceObjectAtIndex:1”,而是使用选定的单元格。

提前致谢。

4 个答案:

答案 0 :(得分:1)

为什么索引1而不是indexPath.row?另外,您不需要重新加载整个表格;只是改变了一行:

[timed replaceObjectAtIndex:indexPath.row withObject:timedText];
[spelerTable reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                   withRowAnimation:UITableViewAnimationAutomatic];

答案 1 :(得分:0)

    [timed replaceObjectAtIndex: indexPath.row withObject:timedText];

答案 2 :(得分:0)

使用单元格:

UITableViewCell *cell = [self tableView:self.tableView cellForRowAtIndexPath:indexPath];

答案 3 :(得分:0)

尝试此代码

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
     //timedText = a NSString

    [timed replaceObjectAtIndex:indexpath.row withObject:timedText];
    [SpelerTable reloadData];
}

如果其他代码中的所有内容都正常,那么它将起作用。