私は奇妙な問題を抱えています。タブバーアプリケーションがあり、さまざまなタブごとにナビゲーションコントローラーを使用しています。各ナビゲーションコントローラーには、コンテンツを表示するための独自のビューコントローラーがあります。
タブをタッチすると、そのタブがビューとともにすぐに読み込まれ、読み込まれた後に(viewDidAppear:
)viewDidAppear:メソッドにデータをダウンロードする必要があります。
この機能をテストするために、次のメソッドを設定しました。NSThread
ビューがロードされている間にバックグラウンドで実行する必要がある長い操作の実行をシミュレートするためにを使用しています。次に、NSArray * test(nonatomic、retain)にいくつかのテストデータを割り当て、テーブルをリロードします。
メソッドで空の文字列を1つだけ含むようにテーブルを設定しているため、テーブルをリロードしていviewDidLoad
ます(これは、viewDidAppear:が呼び出される前にテーブルがセットアップされていることを読み取ったためです。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
DLog(@"viewDidAppear running");
[NSThread sleepForTimeInterval:10];
NSArray *array = [[NSArray alloc] initWithObjects:@"Test1", @"Test2", @"Test3", @"Test4", @"Test5", @"Test6", nil];
self.test = array;
[array release];
[table reloadData];
}
したがって、私の予想される動作は、この特定のタブに触れるとすぐに読み込まれ、10秒後にviewDidAppear:メソッドからのテーブルデータが入力されるはずです。ただし、この動作では、このタブに触れると10秒間待機してから、テーブルデータが入力されたビューが表示されます。