无法从另一个View Controller更改UILabel的文本

时间:2014-06-22 20:46:27

标签: objective-c xcode xcode5

我有两个视图控制器,一个带有文本字段和一个'下一个'按钮和另一个只有标签的按钮。您的想法是在文本字段中填写您的姓名,然后点击“下一步”。然后它应切换到另一个视图,标签应显示您的名字。

但是,当我切换视图时,标签只是空的。我对Objective-C很新,我希望有人知道为什么会发生这种情况:)。

ViewController.m:

@interface ViewController () {
IBOutlet UILabel *label;
IBOutlet UITextField *textField;
}

-(IBAction)go:(id)sender
{
    label.text = textField.text;
}

-(IBAction)remove:(id)sender {
[sender resignFirstResponder];
}

1 个答案:

答案 0 :(得分:0)

你说你有两个视图控制器。第一个View Controller有一个UITextField实例和一个UIButton。您的第二个View Controller只有一个UILabel实例。

但是,我在你的代码中注意到ViewController.m,我假设它是你的第一个View Controller,有两个IBOutlets,一个用于UILabel,一个用于UITextField,这没有意义,因为UILabel应该是成为第二个View Controller的一部分。

您需要做的是从第一个View Controller中正确删除UILabel的IBOutlet。然后,在第二个视图控制器中,为它的UILabel添加IBOutlet。

然后,您需要在第一个View Controller中实现prepareForSegue方法,并添加如下代码语句:

[[segue destinationViewController]label].text = textField.text;

这样,当执行segue时,您将成功将第一个View Controller的文本字段文本传递给第二个View Controller的标签。