在我的故事板中的某个地方,我有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
。
这对我来说似乎很难看,有没有更好的方法在实例化后立即分配插座标签?
答案 0 :(得分:0)
也许您的文本与以前相同的原因是因为您的视图尚未加载 - 在VC的viewDidLoad方法中设置断点,并查看在分配标签之前或之后是否调用该文本。
您可以编写协议并使您的类成为ReadingViewController的委托,这样您就可以在调用viewDidLoad时收到回调,但我不确定这是否比为infoLabel文本创建属性更简单。