0

プロジェクトが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];

ラベルは更新されません。何が問題なのか理解したいのですが?

4

1 に答える 1

1

説明されている理由により、viewDidLoadを実行する前にViewControllerのUIを編集してはならないというサムルールがあります。viewDidLoadが起動される直前@Phillip Morrisに設定する代わりにcvc.dateLabel.text、プロパティを宣言しtextForDateLabel、を設定しcvc.textForDateLabel = [_pressDate description];ます。次に、viewDidLoadContentViewControllerで、self.dateLabel.text = textForDateLabel;

于 2012-11-03T14:02:09.570 に答える