从另一个类设置标签的文本

时间:2012-07-05 07:14:27

标签: iphone ios

我的Firstviewcontroller类中有一个UILabel *employeeNumLabel。 现在我想从我的secondviewcontroller类的方法更改该标签的文本。 我已将以下代码放在我的Secondviewcontroller类中:

-(IBAction)save:(id)sender{
 number ++;

 NSString * numberString = [NSString stringWithFormat:@"%d",number];

 [employeeNumLabel setText:numberString]; 
}

但是显示错误:use of undeclared identifier employeeNumLabel。 虽然我在Secondviewcontroller.m类中导入了Firstviewcontroller.h。

4 个答案:

答案 0 :(得分:1)

在Firstviewcontroller中的@implementaion下面声明UILabel * employeeNumLabel。

@implementation Firstviewcontroller
 UILabel *employeeNumLabel;

然后在第二视图控制器中将其外部显示为

 @implementation secondviewcontroller
 extern UILabel *employeeNumLabel;

之后使用你的代码。

答案 1 :(得分:0)

在标题中定义标签

@property (nonatomic, retain) UILable * employeeNumLabel;

在.m文件中合成它

@synthesize employeeNumLabel

在init函数中,将内存分配给标签并将其添加到视图中。 或者,您可以创建一个IBOutlet并将其链接到此标签。

答案 2 :(得分:0)

要更改标签文本,您需要执行以下操作..

1)您必须在第一个视图控制器...

中创建标签的属性

2)您需要第二个视图控制器中第一个视图控制器的共享引用,就像您可以访问标签并设置同一对象的文本一样。

或..再做一件事......

1)取一个NSString * lblString;在appdelegate类中并使其属性..

2)您知道可以使用以下代码在整个应用程序中获取appdelegate的共享引用

[[UIApplication sharedApplication] delegate]; //this will give your appdelegate Object..

3)然后在你的secondViewController类方法中......

Your_Appdelegate *appdelegate = (Appdelegate *)[[UIApplication sharedApplication] delegate];
appdelgate.lblString = @"YOUR_LABEL_TEXT";

4)然后在你的FirstViewController中..以同样的方式设置lableText ...

 Your_Appdelegate *appdelegate = (Appdelegate *)[[UIApplication sharedApplication] delegate];
yourLabel.text = appdelgate.lblString;

最初您在标签上想要的文字在appdelegate中设置它..

愿这对你有帮助......

答案 3 :(得分:0)

在Firstviewcontroller.h中,将employeeNumLabel声明为extern,

  @interface Firstviewcontroller : UIViewController{}
      extern  UILabel *employeeNumLabel;

然后在Firstviewcontroller.m中添加以下内容(@place,其中声明了全局变量),

UILabel *employeeNumLabel; 

然后在使用你的代码之后在secondviewcontroller.h中导入Firstviewcontroller.h。