2
我有一個UITableView
,其中包含一系列項目,每次通過方法refreshRows
加載表時,我都會從Web應用程序獲取其狀態。我這樣做後,我重新加載表。重新加載UITableView數據而不重新加載視圖?
當我添加一個項目到我的表中時,我發現自己收到一條消息「無效更新:節中的行數無效」。重新加載表格中的數據變得有必要,所以我將舊方法更改爲新的方法(下面顯示了這兩種方法)。我現在有兩個reloadData
電話,這兩個電話都刷新了我的觀點。
問題:是否有更乾淨的方法可以做到這一點?添加後,我需要重新加載我的數據,但我不希望重新加載視圖,直到從Web獲取所有狀態。
- (void)viewDidAppear:(BOOL)animated // new
{
NSLog(@"viewDidAppear");
[super viewDidAppear:animated];
[self.tableView reloadData]; // <------------- Prettier way to do this?
[self refreshRows];
[self.tableView reloadData];
}
- (void)viewDidAppear:(BOOL)animated // old
{
NSLog(@"viewDidAppear");
[super viewDidAppear:animated];
[self refreshRows];
[self.tableView reloadData];
}
- (void)refreshRows {
// foreach row get status from webapp
}
編輯:
這裏的請求的代碼:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
id <NSFetchedResultsSectionInfo> sectionInfo =
[[self.fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
}
你能張貼你numberOfRowsInSection方法?您是否使用insertRowsAtIndexPaths將項目添加到表格中?你提到的錯誤通常是在你調用tableView插入方法而不更新你的模型時引起的。 – adamsiton
這就是發生了什麼......但有沒有辦法重新加載模型,而無需重新加載視圖? – nflacco