[self.tableView reloadData];
这行代码就是让整个表格视图进行刷新,那用在什么地方呢?
看什么操作需要表格视图进行数据刷新就可以了。
情况一
如果在点击返回按钮的时候,这个时候从一个视图跳转回到表格视图,如果我们进行了添加操作需要刷新数据,就可以添加如下代码
- (void)viewWillAppear:(BOOL)animated {
// 这个地方,我们重新获取一次新数据,然后刷新表格一次
self.notes = [[NoteBL alloc] findAll];
[self.tableView reloadData];
}
每个 controller 里面一般都会实现 viewDidLoad 和 viewWillAppear: 两个方法。对于iOS开发人员来说,这两个方法都很熟悉。至少都知道前者是在初始化时被调用一次,后者是在每次这个视图要被显示之前被调用一次。因此 controller 中主要的初始化代码都放在前者中,而后者主要用于视图在显示前的更新。
viewDidLoad 和 viewWillAppear: 方法
情况二
如果我们的视图始终是当前视图,没有发生变化,但是表格数据进行了删除,类似下面的情况,我们也需要刷新表格视图,当然数据也要跟随刷新。
[self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationLeft];
self.notes = [[NoteBL alloc] findAll];
[self.tableView reloadData];
因为在这里我报了一个错误,就是因为没有重新获取self.notes
导致,删除了单元格,进行重新reloadData
的时候,numberOfRowsInSection
返回了一个错误的值,导致了崩溃。