在哪里初始化UILabel?

时间:2014-03-20 17:20:02

标签: ios uiviewcontroller storyboard

在我的故事板中的某个地方,我有ViewController(ReadingViewController),我将以下列方式实例化:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:NULL];
ReadingViewController *viewController = (ReadingViewController *)[sb instantiateViewControllerWithIdentifier:@"SB_RDVC"];
viewController.infoLabel.text = @"test";

VC在故事板中创建了一些标签出口。当我尝试在实例化后立即初始化标签时,它失败了 - 标签值与我在故事板中设置的相同。

作为解决方法,我在VC中创建了一个字符串属性,然后只分配@" test"到那个变量。在ReadingViewController的viewDidLoad中,我只是self.infoLabel.text = self.uglyProperty

这对我来说似乎很难看,有没有更好的方法在实例化后立即分配插座标签?

1 个答案:

答案 0 :(得分:0)

也许您的文本与以前相同的原因是因为您的视图尚未加载 - 在VC的viewDidLoad方法中设置断点,并查看在分配标签之前或之后是否调用该文本。

您可以编写协议并使您的类成为ReadingViewController的委托,这样您就可以在调用viewDidLoad时收到回调,但我不确定这是否比为infoLabel文本创建属性更简单。