我在情节提要中有一个名为IntroViewController的视图控制器,我想将其作为子级添加到另一个这样的视图控制器中:

     IntroViewController *introViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"View1"];
     [introViewController.textLabel setText:@"test"];
     [self addChildViewController:introViewController];

在IntroViewController上,我在情节提要板上贴了一个名为textLabel的标签,如果我运行该程序,它可以工作并向我显示视图控制器,但文本不会更改。知道我该如何解决吗?

最佳答案

当从情节提要板实例化视图控制器时,只有在视图实际显示在屏幕上之前,视图才会加载。在您的代码中,您发布的introViewController.textLabel为nil。

您可以做的一个选择是将属性添加到IntroViewController类,然后设置该属性:

introViewController.initialText = @"test";

然后,在-viewDidLoadIntroViewController内部,将实例化标签,以便您可以进行调用:
[self.textLabel setText:self.initialText];

还值得注意的是,大多数时候建议将视图控制器设置为在其拥有的视图上设置值的控制器,而不是其他某个视图控制器。

关于ios - 添加一个 subview Controller 并更改其标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15143265/

10-10 16:10