如何在继续之后设置UILabel的值?
我有一个简单的故事板由两个UIViewControllers组成,用segue连接它们。
UIVC1 – > UIVC2
我试图设置UIVC2上的UILabel等于存储在UIVC1中的string。 我试图在prepareForSegue
方法中传递string,到目前为止我已经将它设置为UIVC2中的一个property
。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"mySegue"]) { [segue.destinationViewController setDesc:[Brain description]]; } }
UIVC2属性是desc.
然后,在我实现的setDesc
方法中,运行self.display.text = self.desc
,其中display
是UILabel的属性。
然而,这是行不通的,甚至当我只是NSLog的UILabel的价值,它不会打印任何东西,这让我怀疑,如果控制器甚至与UILabel沟通…(我做了CTR +点击并拖动故事板中的东西来勾住它们。)
有一个更好的方法吗??
您的UILabel文本没有被设置,因为在目标视图控制器上连接您的标签的IBOutlet之前正在调用prepareForSegue
。 所以在那个时候,标签仍然是nil
(并且发送消息到nil
都没有效果)。
你应该做的是在你的目标视图控制器上创build一个新的属性来存储string,并在prepareForSegue
设置这个属性。 然后在你的目标视图控制器的viewDidLoad
方法中,使用该属性的值来设置你的UILabel的text
属性。