[英]UITableView loads data too early… or too late
我有一個UITableView,它經常更改其數據。 (這只是存儲在NSArray中的NSStrings。)
Method 1> [self loadMyArray];
Method 2> [myTable reloadData];
我將把這兩種方法放在哪里...以便每當顯示視圖時它們都被調用?
我認為一些可能的地方是:
viewWillLoad
viewDidLoad
viewWillAppear
viewDidAppear
但是我似乎找不到我需要的放置位置:每次出現視圖時……但是在UITableView構建之前。
如果將我的2個方法放入“加載”委托中,則刷新次數不夠。
如果我將2個方法放入“出現”委托中,我會注意到數據已加載兩次。 (浪費)
簡短的答案是,在99%的時間中,應始終將[myTableView reloadData]
放入viewDidLoad
。
如果您希望從子視圖返回UIView時UITableView重新加載其數據(例如,您更新了一些數據),則需要考慮在UITableView中使用的是什么。 大多數時候,我使用的是NSFetchedResultsController,它具有自己的方法來處理數據更新。 但是,有時在重新加載UITableView時需要更新其他類型的數據。 這是我的處理方式:我沒有將[myTableView reloadData]
放入viewDidLoad
,而是將其放入了viewWillAppear
。
如果由於某種原因該表需要很長時間加載,並且在顯示數據之前顯示空白表,那么我會考慮使用Instruments來分析數據加載函數,也許真正的問題是您需要優化該函數,以便需要更少的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.