假设该项目正在使用ARC。 ContentViewController是UIPopoverController的内容
- (IBAction)showPop:(UIButton *)button
{
_pressDate = [NSDate date];
ContentViewController *cvc = [[InfoViewController alloc] initWithNibName:@"ContentViewController" bundle:nil];
self.popController = [[UIPopoverController alloc] initWithContentViewController:cvc];
cvc.dateLabel.text = [_pressDate description];
[self.popController presentPopoverFromRect:button.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
}
上面的代码有效,没问题。但我注意到,如果我打电话
cvc.dateLabel.text = [_pressDate description];
之前
self.popController = [[UIPopoverController alloc] initWithContentViewController:cvc];
标签未获得更新。我只想了解是什么问题?
答案 0 :(得分:1)
在运行viewDidLoad之前,您不应该编辑ViewController的UI,这是因为@Phillip Morris
描述的原因...而不是在触发viewDidLoad之前直接设置cvc.dateLabel.text
,声明属性textForDateLabel
,并设置cvc.textForDateLabel = [_pressDate description];
。
然后在ContentViewController的viewDidLoad
中,执行self.dateLabel.text = textForDateLabel;