title: iOS background view not updated using NSTimer while scanning the bluetooth DEVICE
body: <p>I am trying to work on getting the bluetooth scanning page to pair the BLE device using bluetooth.
  I have found the NSUInteger  <code>[ _ble.scannedPeripheral count ]</code>  do change while scanning. However, when it comes to the execution, the background view images and pages cannot even change. Would you please tell me other wayout make the page change if the variable showing available BLE devices changes from 0 to 1,2 or 3 ? </p>
  
  <p>The below is my code :  (Only relevant) </p>
  
  <pre><code>- (void)viewDidAppear:(BOOL)animated
  {
      if (_ble)
      {
          _ble.delegate = (id) self;
          _ble.btStatus = BT_IDLE;
          [_ble startScanning];
      }
  
      [NSTimer scheduledTimerWithTimeInterval:0.2f  target:self selector:@selector(reloadData) userInfo:nil repeats:YES];
  
  }
  
  
  -(void) reloadData {
  
  
      dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
          // time consuming workout
              dispatch_async(dispatch_get_main_queue(), ^{
              // UI update workout for bluetooth scanning
  
              if( [ _ble.scannedPeripheral count ] &gt; 0 ){
                  [self stopAnimatingImages];
                  [self setTapDemo :  [UIImage imageNamed:@"pairing_d.png"]  : @"Pairing"  : @"#C4CCCF"] ;
              }else{
                  [self setTapDemo : [self loadingImage] : @"Pairing"  : @"#C4CCCF"] ;
                  [self animateImages];
              }
          });
      });
  }
  
  
  
  
  - (void) setTapDemo: (UIImage *) cover  : (NSString *) title : (NSString *) colorHex{
  
      image = [UIImage imageNamed:@"shaded_cal.png"];
      imageA = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
      _container = [[UIView alloc] initWithFrame:[self.view bounds]];
      [imageA setImage:cover];
      imageA.userInteractionEnabled = YES;
      UITapGestureRecognizer *myGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(touchesBegan:)];
      myGesture.numberOfTapsRequired = 1;
      myGesture.delegate=self;
      [imageA addGestureRecognizer:myGesture];
      [imageA setContentMode:UIViewContentModeScaleAspectFill];
  
      myLabelQ = [self constructLabelT:title:0.27:0.08: colorHex:25];
      myLabelBack =[self constructLabelT:@"BACK":0.04:0.01:@"#C4CCCF":18] ;
      if( bleCount &gt; 0){
  
           for(NSUInteger  i = 0 ; i &lt; [ _ble.scannedPeripheral count ] ; i ++){
              DevicePeriperal *device;
              NSString *uuid = [_ble.scannedPeripheralKey objectAtIndex:i];
               NSLog (@"device uuid = %@",  uuid);
               if (uuid)
               {
                   device = [_ble.scannedPeripheral objectForKey:uuid];
                   NSData * ssx = device.advertdata ;
                   device.rowIndex = i;
                   NSLog (@"device advert = %@",  ssx);
                   if([ssx length] &gt; 0){
                       NSData *macD = [ssx subdataWithRange:NSMakeRange(0, 6)];
                       NSData *pairD = [ssx subdataWithRange:NSMakeRange(6, 1)];
                       NSString* newStr =  [self hexRepresentationWithSpaces:pairD : NO];
                       NSString* newMAC =  [self hexRepresentationWithSpaces:macD : YES];
                       NSLog (@"newStr = %@", newStr );
                       NSLog (@"newMAC = %@", newMAC );
                       _checkSumByte = [self calculateChecksum:newMAC];
                   }
  
                   NSLog (@"device = %@", device.uuid);
                   if (device )
                   {
                       UIImage *dImage = [UIImage imageNamed:@"device_u.png"];
                       float change =  0.15*i;
                       float yPosition = 0.25 + change ;
                       [imageA addSubview:[self deviceGet:dImage:device.deviceName: 0.40 : yPosition : @"#C4CCCF"]];
                   }
               }
  
           }
           //UIImage *dImage = [UIImage imageNamed:@"device_u.png"];
           //[imageA addSubview:[self deviceGet:dImage:@"x": 0.40 : 0.25 : @"#C4CCCF"]];
           //[imageA addSubview:[self deviceGet:dImage:@"x": 0.40 : 0.40 : @"#C4CCCF"]];
           //[imageA addSubview:[self deviceGet:dImage:@"x": 0.40 : 0.55 : @"#C4CCCF"]];
           //[imageA addSubview:myLabelS3];
  
           myLabelS1 = [self constructLabelT:@"SPOTTED":0.27:0.723: colorHex:25];
           myLabelS2 =[self constructLabelT:@"(choose the one you want to connect)":0.55:0.76:@"#C4CCCF":10] ;
           myLabelS3 = [self constructLabelT:@"devices":0.30:0.76: colorHex:25];
  
       }else{
  
           myLabelS1 = [self constructLabelT:@"SCANNING":0.27:0.723: colorHex:25];
           myLabelS2 =[self constructLabelT:@"devices":0.51:0.76:@"#C4CCCF":25] ;
           myLabelS3 = [self constructLabelT:@"for":0.30:0.76: colorHex:25];
       }
  
      [imageA addSubview:myLabelQ];
      [imageA addSubview:myLabelBack];
  
      [imageA addSubview:myLabelS1];
      [imageA addSubview:myLabelS2];
  
      [imageA addSubview:myLabelS3];
      [_container addSubview:imageA];
  
      [self.view addSubview:_container];
      [self.view sendSubviewToBack:_container];
  
  }
  </code></pre>