そこで、ASIHTTPRequest とネットワーク キュー用のシングルトン クラスを作成しました。問題なくバックグラウンドでファイルをダウンロードします。ただし、1 つのビューからダウンロードを開始しているため、ユーザーはタブを変更してダウンロード キューを表示することができます。タブに切り替えると、進行状況バーが更新されません。別のView Controllerで進行状況バーを更新する方法がわかりません。
if (!self.queue) {
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
self.queue = [[[ASINetworkQueue alloc] init] autorelease];
[self.queue setMaxConcurrentOperationCount:1];
[self.queue setDownloadProgressDelegate:self];
}
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:desPath];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[self.queue addOperation:request]; //queue is an NSOperationQueue
[self.queue go];
質問は次のとおりです。上記のコードはバックグラウンドで実行されるため、setDownloadProgressDelegate を設定して別のビュー コントローラーの progressView を更新するにはどうすればよいですか? ダウンロードするファイルを含むテーブルビューが既にあり、テーブルビューのすぐ上に、ダウンロード中のファイルの進行状況を表示するビューがあります。キューに追加してダウンロードすることは問題ではありません。プログレスバーを更新するだけです。