如何设置跟随segue的UILabel的值?

Ton*_*ark 11 ios

我有一个简单的故事板,由两个UIViewControllers组成,segue连接它们.

UIVC1 - > UIVC2

我正在尝试将UIVC2上的UILabel设置为等于存储在UIVC1中的字符串.我正在尝试在prepareForSegue方法中传递字符串,到目前为止,我已将其设置为propertyUIVC2中的字符串.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"mySegue"]) {
        [segue.destinationViewController setDesc:[Brain description]];
    }
}
Run Code Online (Sandbox Code Playgroud)

UIVC2的房产是 desc.

然后,在我的setDesc方法,我已经实现了,我跑self.display.text = self.desc哪里display是我的财产的UILabel.

然而,这不起作用,即使我只是NSLog的UILabel的值,它也不打印任何东西,这让我想知道控制器是否甚至与UILabel进行通信...(我确实做了ctr +点击并在故事板中拖动它以将它们连接起来.)

有一个更好的方法吗??

jon*_*oll 27

您的UILabel文本未设置,因为prepareForSegue在连接目标视图控制器上的标签的IBOutlet之前调用了该文本.所以此时标签仍然是nil(并且发送消息nil没有效果.)

您应该做的是在目标视图控制器上创建一个新属性来存储字符串,并在其中设置此属性prepareForSegue.然后在目标视图控制器的viewDidLoad方法中,使用该属性的值来设置textUILabel 的属性.