refreshRows
という方法でテーブルをロードするたびに、ステータスがWebアプリケーションから取得される一連のアイテムを含むUITableView
があります。私がこれをした後、私はテーブルをリロードします。Reload UITableViewビューを再読み込みせずにデータをロードしますか?
テーブルにアイテムを追加したとき、「無効な更新:セクション内の行数が無効です」というメッセージが表示されました。テーブルのデータを再読み込みする必要があることが判明したので、私は古いものから新しいviewDidAppear
のメソッドに変更しました(どちらも下に示します)。私は今、2つの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
}
EDIT:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
id <NSFetchedResultsSectionInfo> sectionInfo =
[[self.fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
}
自動的にデータソースの更新のたびに、あなたのテーブルビューを更新します、あなたはあなたにnumberOfRowsInSectionを投稿することができます方法? insertRowsAtIndexPathsを使用してテーブルに項目を追加していますか?上記のエラーは、通常、モデルを更新せずにtableView挿入メソッドを呼び出すときに発生します。 – adamsiton
それは起こっていることですが、ビューをリロードせずにモデルをリロードする方法がありますか? – nflacco