1
[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返回了一个错误的值,导致了崩溃。


jaysun
507 声望25 粉丝

Code is law