2015-10-07 7 views
1

Выполняю загрузку с помощью загрузки класса Manage и обновления представления индикатора выполнения в соответствии с полученными байтами в деле делегировании didReceiveData.Не обновляет индикатор выполнения при возврате в UIViewController

Все работает нормально, когда я нахожусь на странице, где происходит загрузка, но когда я перехожу к другому контроллеру представления и возвращаюсь на мою страницу загрузки, функции делегата соединения вызывают при переходе страницы, но возвращаются не обновляет индикатор выполнения.

Thats мой код

for (NSInteger row = 0; row < [downloadManager.downloads count]; row++) 
{ 
    if (download == downloadManager.downloads[row]) 
    { 
     currentTime = [NSDate timeIntervalSinceReferenceDate]; 

     [self updateProgressViewForIndexPath:[NSIndexPath indexPathForRow:row inSection:0] download:download]; 

lbl_percentage.text = [NSString stringWithFormat:@"%.02f%%",((double) download.progressContentLength/(double) download.expectedContentLength)*100]; 

     lbl_received_data.text = [NSString stringWithFormat:@"%@/%@",[self transformedValue:(double) download.progressContentLength],[self transformedValue:(double) download.expectedContentLength]]; 

     double downloadSpeed = (double) download.progressContentLength/(currentTime - startTime); 

     lbl_speed.text = [NSString stringWithFormat:@"%@/sec", [self transformedValue:downloadSpeed]]; 

     NSLog(@"Download Running"); 

     break; 
    } 
} 
+0

Может yuor разместить свой код? – Lorenzo

+0

Я получаю идеальное значение процента, скорость загрузки, но не отображается в UILabel –

+0

делает ли ваш код внутри блока? – Lorenzo

ответ

0
-(void)viewDidAppear:(BOOL)animated 
{ 
    [[self downloadManager] setDelegate:self]; 
} 

-(IBAction)btn_Download_click:(id)sender 
{ 
    if ([self downloadManager]) { 
     [[self downloadManager] setDelegate:self]; 
    }else{ 
     self.downloadManager = [[DownloadManager alloc] initWithDelegate:self]; 
     self.downloadManager.maxConcurrentDownloads = 1; 
    } 

    downloadData = [[NSMutableData data] retain]; 

    NSLog(@"coverimg%@",coverimg); 

    NSString *string=[[NSString stringWithFormat:@"http://www.virtueinfotech.com/moralstory/pdf/%@",coverimg] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

    NSURL *reqURL = [NSURL URLWithString:string]; 

    startTime = [NSDate timeIntervalSinceReferenceDate]; 

    [self Readfunction]; 
    [self.downloadManager addDownloadWithFilename:filePath URL:reqURL]; 

} 
-(IBAction)btn_Read_click:(id)sender 
{ 
    [self Readfunction]; 

    PdfReadView *pdfRv = [[PdfReadView alloc]init]; 
    [self.navigationController pushViewController:pdfRv animated:YES]; 
} 

#pragma mark - Download Manager Delegate Methods 

- (void)updateProgressViewForIndexPath:(NSIndexPath *)indexPath download:(Download *)download 
{ 
    if (download.expectedContentLength >= 0) 
    { 
     // Calculate the progress. 
     dispatch_async(dispatch_get_main_queue(), ^{ 

      [self setProgress:(double) download.progressContentLength/(double) download.expectedContentLength animated:YES]; 

      lbl_percentage.text = [NSString stringWithFormat:@"%.02f%%",((double) download.progressContentLength/(double) download.expectedContentLength)*100]; 

      lbl_received_data.text = [NSString stringWithFormat:@"%@/%@",[self transformedValue:(double) download.progressContentLength],[self transformedValue:(double) download.expectedContentLength]]; 

      double downloadSpeed = (double) download.progressContentLength/(currentTime - startTime); 

      lbl_speed.text = [NSString stringWithFormat:@"%@/sec", [self transformedValue:downloadSpeed]]; 
     }); 
    } 
    else 
    { 
     [self setProgress:(double) (download.progressContentLength % 1000000L)/1000000.0 animated:YES]; 
    } 
} 
- (void)downloadManager:(DownloadManager *)downloadManager downloadDidFail:(Download *)download; 
{ 
    [self setProgress:0.0f animated:YES]; 
    UIAlertView *alt = [[UIAlertView alloc] initWithTitle:@"Oops !!" message:@"Downloading Failed...." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [alt show]; 
} 

- (void)downloadManager:(DownloadManager *)downloadManager downloadDidReceiveData:(Download *)download; 
{ 

    lbl_total_size.text = [NSString stringWithFormat:@"%@",[self transformedValue:(double) download.expectedContentLength]]; 

    for (NSInteger row = 0; row < [downloadManager.downloads count]; row++) 
    { 
     if (download == downloadManager.downloads[row]) 
     { 
      currentTime = [NSDate timeIntervalSinceReferenceDate]; 
      dispatch_async(dispatch_get_main_queue(), ^{ 

       [self updateProgressViewForIndexPath:[NSIndexPath indexPathForRow:row inSection:0] download:download]; 
      }); 
      NSLog(@"Download Running"); 

      break; 
     } 
    } 
} 
+0

это мой полный код –