deleteRowsAtIndexPaths不起作用

时间:2013-03-17 11:53:41

标签: iphone ios objective-c xcode ios5

我正试图在deleteRowsAtIndexPaths的帮助下折叠并展开UITableView部分。似乎没有发生任何事情,我无法弄清楚为什么。

    NSMutableArray *tmpArray = [NSMutableArray array];
    for (int i=1; i<numberOfRowsInSection; i++){
        NSIndexPath *tmpIndexPath = [NSIndexPath indexPathForRow:i inSection:section];
        [tmpArray addObject:tmpIndexPath];
    }

    [_tableView beginUpdates];
    [_tableView deleteRowsAtIndexPaths: tmpArray withRowAnimation:UITableViewRowAnimationAutomatic];
    [_tableView endUpdates];

我已经阅读了很多相关的问题,但我似乎没有做任何帮助。

知道我在这里做错了什么?

更新

似乎_tableview为null。我猜这是没有发生任何事情的主要原因。只是不明白,因为tableview是一个插座,它已经填充了行和部分。

填充行和节的tableview如何为空?

2 个答案:

答案 0 :(得分:2)

deleteRowAtIndexPath:withAnimation:只是告诉你的表格应该如何显示表格。您需要同时从实际数据中删除此行。 Aka tableView:NumberOfRowsInSection:需要返回正确的行数。

答案 1 :(得分:0)

在调用deleteRowsAt...之后,您可能正在使用原始数据重新加载表视图。请确保更改更新您的tableView数据源以便处理已删除的更改,即更改方法中每个部分的行数{{ 1}}