0

我正在尝试清除 UITableView。首先,我尝试清除[self.tableView reloadData]; listOfPosts = nil但 tableView 仍然显示 10 行。然后我尝试逐行删除,但结果是一样的。

[[NSOperationQueue mainQueue] addOperationWithBlock:^{

NSLog(@"Number of sections: %i", [self.tableView numberOfSections]); // => 1
NSLog(@"Number of rows in section 0: %i", [self.tableView numberOfRowsInSection:0]); // => 10

[self.tableView beginUpdates];
NSMutableArray *rowsToDelete = [[NSMutableArray alloc] init];
int nPosts = [self.tableView numberOfRowsInSection:0];
for (int i = 0; i < nPosts; i++) {
    [rowsToDelete addObject:[NSIndexPath indexPathForRow:i inSection:0]];
}
currentPostList = nil;
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithArray:rowsToDelete] withRowAnimation:UITableViewRowAnimationNone];                         
[self.tableView endUpdates];
[self.tableView reloadData];

NSLog(@"Rows after endUpdates: %i", [self.tableView numberOfRowsInSection:0]); // => 0
NSLog(@"Visible rows: %i", [[self.tableView visibleCells] count]); // => 0

// But the tableView still show 10 rows

}];

PD:我使用的是 UITableViewController 所以 self.tableView 是自动生成的

(对不起我的英语不好)

4

1 回答 1

0

您是否尝试过更改方法中的值:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

这将改变表格视图中的行数。除非您的模型更改了此方法声明的值,否则重新加载表不会做任何事情。

于 2013-09-26T17:35:55.020 回答