将数据传递给ViewController,它是UIPopoverController的内容

时间:2012-11-03 12:09:09

标签: ios ipad uipopovercontroller

假设该项目正在使用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];

标签未获得更新。我只想了解是什么问题?

1 个答案:

答案 0 :(得分:1)

在运行viewDidLoad之前,您不应该编辑ViewController的UI,这是因为@Phillip Morris描述的原因...而不是在触发viewDidLoad之前直接设置cvc.dateLabel.text,声明属性textForDateLabel,并设置cvc.textForDateLabel = [_pressDate description];。  然后在ContentViewController的viewDidLoad中,执行self.dateLabel.text = textForDateLabel;