【ios】关于[self.tableView reloadData]使用技巧

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值