title: When changing view controllers NSURLConnection delegate not updating the progress bar
body: <p>I am performing a download through <code>NSURLConnection</code> class and updating a progress bar view according to the received bytes in the <code>NSURLConnection</code> <code>delegate</code> connection <code>didReceiveData</code>.</p>
  
  <p>Everything is working fine when I am on the page where downloading is happening but when I am going to some other view controller and coming back to my downloading page, the connection <code>delegate</code> functions are being called while transition of page but coming back does not upgrade the <code>progress</code> bar.</p>
  
  <p>The code I am using is:</p>
  
  <pre><code>- (IBAction)download:(id)sender {
      _currentURL = [NSString stringWithFormat:@"url_to_download"];
      NSURL *url =[NSURL URLWithString:_currentURL];
      NSURLRequest *theRequest = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60];
  
      _receivedData = [[NSMutableData alloc]initWithLength:0];
      connection2 = [[NSURLConnection alloc]initWithRequest:theRequest delegate:self startImmediately:YES];
  }
  
  
  -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
  {
      NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
      NSLog(@"THE STATUS CODE IS %d",[httpResponse statusCode]);
      statuscode = [httpResponse statusCode];
      NSLog(@"into didReceiveResponse");
      [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
      [_receivedData setLength:0];
      expectedBytes = [response expectedContentLength];
      NSLog(@"EXPECTED BYTES:%ld",expectedBytes);
  }
  -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
  {
      NSLog(@"into did receivedata");
      [_receivedData appendData:data];
  
          self.setting.enabled = NO;
          float progressive = (float)[_receivedData length] / (float)expectedBytes;
          [self.progress setProgress:progressive];
  
  }
  
  -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
  {
     AppDelegate *app = (AppDelegate*) [[UIApplication sharedApplication]delegate];
      NSLog(@"into didfailwitherror");
      [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
      NSLog(@"connection failed");
  
  
  }
  
  -(NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse
  {
      return nil;
  }
  
  -(void)connectionDidFinishLoading:(NSURLConnection *)connection
  
  {
  
          self.setting.enabled = YES;
          NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  
          NSString *documentsDirectory = [paths objectAtIndex:0];
          NSLog(@"DOCUMENT DIRECTORY :%@",documentsDirectory);
  
          _imagePath = [documentsDirectory stringByAppendingPathComponent:_fullPath];
          NSLog(@"iamge path:%@",_imagePath);
          NSLog(@"succeeded");
          [UIApplication sharedApplication].networkActivityIndicatorVisible= NO;
          NSLog(@"Succeeded! Received %d bytes of data",[_receivedData length]);
  
          // flag= [_receivedData writeToFile:imagePath atomically:NO];
          if([_receivedData writeToFile:_imagePath atomically:YES])
          {
  
              NSLog(@"write successfull");
              app.dl_status = 0;
              [HUD hide:YES];
              [HUD removeFromSuperview];
              HUD = nil;
              [self completedDownloadHUD];
              [self.download setBackgroundImage:[UIImage imageNamed:@"download.png"] forState:UIControlStateNormal];
          }
          else{
              app.dl_status = 0;
              NSLog(@"write failed");
              [HUD hide:YES];
              [self errorDownloadHUD];
          }
  
          NSString *imagePathExtension;
          imagePathExtension = [_imagePath pathExtension];
          if([imagePathExtension isEqual:@"jpg"])
          {
              NSLog(@"imagepathextension is jpg");
              UIImage *img =[UIImage imageWithContentsOfFile:_imagePath];
              UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
  
          }
          else if([imagePathExtension isEqual:@"mov"])
          {
              NSLog(@"imagepathextension is mp4");
              UISaveVideoAtPathToSavedPhotosAlbum(_imagePath, nil, nil, nil);
          }
  
  
  }
  </code></pre>
  
  <p>Please tell me how i can retain the value of progress bar while coming back to page and update it.</p>