在AViewController中有一个UITableView包含一些数据,调用

[self.navigationController pushViewController:bViewController animated:YES]

推动bViewController,在bViewController中执行某些操作后,在aViewController中选择的单元格将更改某些信息(例如,更新读取计数)。

我的解决方案:


在aViewController中添加通知
在bViewController中通过参数发布通知(选定单元格的indexPath)
当从bViewController收到通知时,重新加载indexPath的单元格。


现在我遇到了这个问题:
大多数时候没有问题,但是有时应用会崩溃,问题是
 在带有indexPath(从bViewController发布的通知中获取)**的aViewContrller中的单元格是不可见的。

最佳答案

您可以在viewDidAppeare方法中重新加载整个表视图。
每次您从bViewController返回时,它将起作用。

或者只是为了牢记性能,您可以重新加载可见的行:

[tableView reloadRowsAtIndexPaths:[tableView indexPathsForVisibleRows]
                 withRowAnimation:UITableViewRowAnimationNone];


甚至只重新加载所做更改的一个单元格,将[tableView indexPathsForVisibleRows]替换为包含要重新加载的单元格的一个索引路径的数组。

10-07 18:35