2011-03-27 57 views
0

我有一个处理下载并提供进度信息的类。将进度栏信息传递给视图控制器

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    [recievedData appendData:data]; 
    self.recievedlength = self.recievedlength + [data length]; 

    // Calculating progress 
    self.progress = 0; 
    self.progress = ((float)recievedlength/[filesize floatValue]); 
    // NSLog(@"%f",self.progress); 

    [self performSelectorOnMainThread:@selector(passProgress) withObject:nil waitUntilDone:NO]; 

我有以下选择返回浮子的进度信息INT形式,在同一类:

  • (浮点)passProgress {
    //的NSLog(@ “%F” ,self.progress); return self.progress; }

我的问题是,我如何更新MainViewController中的UIProgressView(进度条)。以下不起作用。

NSLog(@"Progress %f",[classInstance passProgress]); 

任何想法谢谢。我不想在MainViewController中编写下载代码。

+0

也许我在这里忘了一些东西,但为什么不直接调用UIProgressView上的方法直接从'connection:didReceiveData:'更新值呢? – 2011-03-27 13:13:39

+0

我该怎么做。该视图的代码包含在MainViewController.m中。我如何在界面中连接它? – maxpaul 2011-03-27 13:17:44

+0

您只需在您的类中创建处理下载的引用,即对MainViewController或UIProgressView的引用,并在运行时将其连接。例如,也许当您初始化下载类时,您会将其传递给UIProgressView。 – 2011-03-27 17:03:45

回答

0

在您的下载管理器中写入。在你的主视图控制器中采用该协议。

+0

你能指点我一些例子吗?我从来没有写过一个协议。 – maxpaul 2011-03-27 13:33:07

+0

http://stackoverflow.com/questions/1521267/defining-categories-for-protocols-in-objective-c – YPK 2011-03-27 15:50:22

相关问题