我有一个UITableView可以经常更改其数据。 (它只是NSStrings,存储在NSArray中。)
Method 1> [self loadMyArray];
Method 2> [myTable reloadData];
我将把这两种方法放在哪里......所以每次显示视图时都会调用它们?
我假设一些可能的地方是:
viewWillLoad
viewDidLoad
viewWillAppear
viewDidAppear
但我似乎无法找到我需要的位置:每次出现视图时......但是在UITableView构建之前。
如果我将我的2个方法放在“加载”委托中......它不会经常刷新。
如果我将我的2个方法放入“Appear”委托中......我注意到数据被加载了两次。 (浪费)
答案 0 :(得分:0)
简短的回答是,在99%的情况下,您应始终将[myTableView reloadData]
放入viewDidLoad
。
如果您希望UITableView在从子视图返回UIView时重新加载其数据(例如,您更新了一些数据),那么您需要考虑在UITableView中使用的是什么。大多数时候,我使用NSFetchedResultsController,它有自己的方法来处理数据更新。但是,有时我需要在重新加载UITableView时更新其他类型的数据。以下是我处理它的方式:我将[myTableView reloadData]
放在viewDidLoad
中,而不是viewWillAppear
。
如果出于某种原因,表格需要很长时间才能加载并且在显示数据之前显示空白表格,我会研究使用Instruments分析数据加载功能,也许真正的问题是你需要优化功能,所以它需要更少的时间。