0

そこで、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 を更新するにはどうすればよいですか? ダウンロードするファイルを含むテーブルビューが既にあり、テーブルビューのすぐ上に、ダウンロード中のファイルの進行状況を表示するビューがあります。キューに追加してダウンロードすることは問題ではありません。プログレスバーを更新するだけです。

4

1 に答える 1

0

DownloadProgressDelegate を AppDelegate などの別のクラスに設定してみて、それを使用して進行状況バーを更新するビューを決定します。

于 2012-07-22T19:03:17.427 に答える