web-dev-qa-db-ja.com

見ているときにUITableViewをリロードする方法

可視のビューコントローラーの一部としてUITableViewがある場合、それを再読み込みして、表示しているデータが新しいデータに変更されるようにする方法を教えてください。 reloadを呼び出すだけでは、スクロールするまでデータが更新されないようです。

30
Genericrich

reloadData メソッドを呼び出すと、メソッドが呼び出されるとすぐにデータが更新されます。テーブルがスクロールされるのを待ちません。 reloadDataを呼び出す前に、データソース(配列または辞書、または値を保存した場所)が変更されていることを確認してください。

35
lostInTransit

メインスレッドからデータを更新していますか?その場合は、次のメソッドを使用してreloadDataメソッドを呼び出す必要があります。

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait

したがって、tableViewの場合は次のようになります。

[tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

33
xmr

ちょうど2013年のアップデート、あなたが使用する限り、あなたはデータをリロードすることもできるはずです

dispatch_async(dispatch_get_main_queue(), ^{
    [self.tableView reloadData];
});

GCDは素晴らしい!

20
GangstaGraham