В ViewController
у меня есть следующее:
- (void)viewWillAppear:(BOOL)animated
{
DataObject *theDataObject = [self theAppDataObject];
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"MMM dd, yyyy HH:mm"];
NSString *dateStr = [formatter stringFromDate:theDataObject.deadline];
NSLog(@"Logged dateStr: %@", dateStr);
[dateTimeLabel setText:dateStr];
[super viewWillAppear:animated];
}
Чтобы уточнить: dateTimeLabel
IS подключен в файле xib
.Метод viewWillAppear
явно вызывается из другого ViewController
и запускается следующим образом:
- (IBAction)setDateTimeButtonClicked:(id)sender
{
DataObject *theDataObject = [self theAppDataObject];
theDataObject.deadline = [datePicker date];
FirstMobileViewController *mobileVC = [[FirstMobileViewController alloc] init];
[mobileVC viewWillAppear:YES];
[mobileVC release];
[UIView transitionWithView:self.view.superview
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionLayoutSubviews | UIViewAnimationOptionAllowAnimatedContent
animations:^{[self.view removeFromSuperview];}
completion:NULL];
}
Метод viewWillAppear
запускается - dateStr
регистрируется соответствующим образом NSLog
когда суперпредставление показывается снова.Но dateTimeLabel
никогда не обновляется.Очевидно, что комментирование строки NSLog
не имеет значения.
MADDENING состоит в том, что даже если NSLog
logs dateStr
просто отлично,если я изменю dateStr
, скажем, @"Yo!"
или даже на локально инициализированную строку, то dateTimeLabel
обновится, без проблем.
Что мне здесь не хватает?