我有一個UITableViewController類。我正在使用NSMutableArray填充表格單元格。我正在從數據庫&中獲取數據,並將其添加到數組中。但細胞正在顯示舊的結果。我如何使用reladData方法&我應該在哪裏調用我的UITableViewController中的這個方法?如何使用tableView的reloadData方法iphone
回答
我引述蘋果的文檔時不使用它:
表視圖的委託或數據源 當它想 表視圖完全重裝 其數據調用此方法。不應在 中調用插入或刪除 行的方法,尤其是在調用 beginUpdates和endUpdates時實現的動畫 中。
這麼叫吧,當你改變了你的模型,但沒有使用實現代碼如下方法來改變如表:
deleteRowsAtIndexPaths:withRowAnimation:
deleteSections:withRowAnimation:
insertRowsAtIndexPaths:withRowAnimation:
insertSections:withRowAnimation:
每當你調用reloadData方法,表視圖將被刷新。當你想在從數據庫加載數據後刷新表格時,可以在完成抓取時調用重新加載數據。
// code to fetch data from database // when done, reload the table [myTableView reloadData];
你可以(也應該)調用reloadData:
時要強制表重新加載或當你知道它沒有被抽呢。
通常,您會在您的視圖控制器的viewDidLoad:
方法或viewDidAppear:
(或甚至viewWillAppear:
)中執行此操作。
在這些方法之外,如果您實質性地更改用於向表中提供數據的數據數組的內容,您可能需要致電reloadData:
。例如,假設您有一個包含每個庫存級別的產品列表。在初始視圖中,您可能只顯示數組中的所有內容。但是,假設您應用了一個過濾器來僅顯示零庫存的產品。包含產品的陣列將被縮小爲只包含那些產品,因此在縮小陣列後,您可以在表格上調用reloadData:
,以便更新視圖。
順便說一下,正如我最近發現的,當您撥打reloadData:
時,表格會異步(很快)重新加載。但是,方法deleteRows...
,deleteSections...
,insertRows...
和insertSections...
(特別是在beginUpdates:
和endUpdates:
調用之間)是同步執行的,並且對於大型表可以顯着減慢應用程序(並凍結UI)。你的里程可能會有所不同,但那是我對這些方法的經驗。我實際上去了一個模型,我使用deleteSections...
,然後使用reloadData:
(因爲我正在刪除所有部分)。
您可以使用
//fetch data from database.. and update array
//reload table data asper new data
[self.tableView reloadData];
- 1. TableView reloaddata
- 2. 與[的tableView reloadData]
- 3. 如何暫停reloadData被調用的tableview?
- 4. ios:[tableView reloadData]
- 5. 當tableView reloadData
- 6. TableView不調用時調用[tableView reloadData]
- 7. 應用程序崩潰在tableview的reloadData方法
- 8. tableView reloadData不起作用
- 9. TableView reloadData不會更新iPad中的UI,但可用於iPhone
- 10. reloadData()不更新父的TableView
- 11. 的TableView reloadData與beginUpdates&endUpdates
- 12. 的tableView reloadData過濾數據
- 13. Cell accessorytype不能在[tableview reloadData]
- 14. TableView不更新與ReloadData()
- 15. TableView reloadData不重新加載?
- 16. TableView yOffset改變後reloadData
- 17. 麻煩解決[tableView reloadData]
- 18. iPhone - Tableview多線程 - 可行的方法?
- 19. iphone使用2 tableview
- 20. 不使用'numberOfRowsInSection'委託方法到達tableview的結尾iphone sdk
- 21. 你如何使用reloadData?
- 22. 調用[tableView reloadData];從一個modalViewController
- 23. 從appdelegate調用UITableView的reloadData方法
- 24. 的UITableView reloaddata和的tableview是空
- 25. 的tableView reloadData不工作:的cellForRowAtIndexPath不叫
- 26. 的tableview reloadData產生EXC斷點
- 27. 的tableView reloadData沒有文件目錄
- 28. Tableview reloadData和CGRect的新單元格
- 29. reloadData doen't繪製細胞的tableview
- 30. 升級到iPhone OS 4後,我的TableView滾動到頂部後reloadData調用
刷新你的表格單元格,還看尼克韋弗的回答爲其他有價值的信息。 – taskinoor 2011-04-08 18:14:35