2013-03-11 122 views
0

我正在开发iOS应用程序,使用Xcode 4.6在Objective-C中编写代码。我有两个屏幕通过push segue连接。在第一个中,我有一个用户填充的文本字段,第二个中有一个标签,我想用第一个屏幕文本框填充标签文本。我也有每个屏幕1类,所以我有FirstController.h,FirstController.m,SecondController.h,SecondController.m。更改标签文本

回答

0

当您从第一个视图控制器到第二个视图控制器时,您可以将您的标签作为第二个视图控制器中的属性公开,然后在您的第一个视图控制器的方法(您需要对此进行子类化)期间设置该标签:

[UIViewController prepareForSegue: sender:]

+0

如何继承子类?对不起,我是新来的Objective-C – 2013-03-11 02:32:37

+0

如果你有一个“SecondViewController”(它是“UIViewController”的子类),你已经被子类化了,许多初学者应用程序会自动附带这个子类。听起来你现在非常接近。你成功了吗? – 2013-03-11 06:32:42

0

确保你已经创建了一个SEGUE。然后,您可以使用传递数据:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

    SecondController *second = [segue destinationViewController]; 
    second.label.text = textBox.text; 

} 
+0

哦,谢谢!还有一个问题,即使当segue由IBAction按钮控制时它是否工作?因为现在当我按下控制继续的按钮时,我得到“线程1:信号SIGABRT”错误 – 2013-03-11 01:24:03

+0

我忘记标记你 – 2013-03-11 01:30:32

0

如果您有标签的财产在你SecondViewController,您可以使用prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender方法来设置它的文本创建SecondViewController的实例,并要求其作为

属性后,
`secondViewController.myLabel.text = @"some text"; 

如果你有你的标签为一个实例变量,通过使用NSString为标签的文本到第二视图中的文本作为

`[email protected]"some text"; 

SecondViewController,在viewDidLoad方法中设置标签的文字。