目前我在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;
}
}
忽略可怕的格式,我不知道我正在做什么。在此先感谢任何支持。 :)
答案 0 :(得分:0)
我认为,您正在更新,在查看第二个控制器的Load之前修改属性。在View Load之前,如果您更新任何内容,它将不会反映,因为属性更新将在Controller导航后调用。