0

所以,我为我的 ASIHTTPRequest 和一个网络队列创建了一个单例类。它在后台下载文件没有问题。但是,因为我是从一个视图开始下载,然后用户可以选择更改选项卡以查看下载队列。当我切换到选项卡时,进度条没有更新。我不确定如何在另一个视图控制器中获取进度条以进行更新。

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呢?我已经有一个包含要下载的文件的 tableview,并且在 tableview 上方有一个视图,应该显示正在下载的文件的进度。添加到队列和下载不是问题。它只是让进度条更新。

4

1 回答 1

0

尝试将 DownloadProgressDelegate 设置为另一个类,例如您的 AppDelegate,并使用它来决定在哪个视图中更新进度条。

于 2012-07-22T19:03:17.427 回答