无法修改文件中任何IBOutlet的属性

时间:2014-01-10 05:38:15

标签: ios objective-c iboutlet

目前我在AVCaptureMetadataOutputObjectsDelegate中,使用故事板创建了向用户呈现数据的方法。但是,当我从另一个视图控制器调用一个方法来传递两者之间的数据时,我可以很好地检索数据并相应地对其进行NSLog,但是根本无法分配或更新视图控制器的任何属性。即更新标签文本,移动UIView等......这是代码的样子,

- (void) retrieveObject: (ScannedItem *) object 
  {
     if(object == NULL)
        nil;
     else
        self.scannedObject = object;

     NSLog(@"RETRIEVED IN V2: %@", self.scannedObject.itemName);
    [self performSelector:@selector(animateResults:) withObject:self afterDelay:0];
 }

- (void) refreshBarcode: sender 
 {
    NSLog(@"%@", detectionString);
    if(detectionString != nil) 
    {
       [self performSelector:@selector(retrieveOnlineData:) withObject:self afterDelay:0];
    }
 }

- (void) animateResults: sender
  {
     self.productName.text = @"Hey";

     if(resultsViewExpanded == YES)
      {
          NSLog(@"hiding");
          [UIView animateWithDuration:0.5 animations:^{
                self.resultsView.frame = CGRectMake(0, 531, self.resultsView.frame.size.width,  self.resultsView.frame.size.height);
           }];
     resultsViewExpanded = NO;

     }
     else
     {
         NSLog(@"showing");
         self.productName.text = [NSString stringWithFormat:@"%@", self.scannedObject.itemName];
        [UIView beginAnimations:@"ShowButtons" context:nil];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationDuration:0.5];

        self.resultsView.frame = CGRectMake(0, 364, self.resultsView.frame.size.width,  self.resultsView.frame.size.height);

        [UIView commitAnimations];

        resultsViewExpanded = YES;
    }
  }

忽略可怕的格式,我不知道我正在做什么。在此先感谢任何支持。 :)

1 个答案:

答案 0 :(得分:0)

我认为,您正在更新,在查看第二个控制器的Load之前修改属性。在View Load之前,如果您更新任何内容,它将不会反映,因为属性更新将在Controller导航后调用。