无法访问iOS中其他类的UIlabel

时间:2013-01-04 08:37:07

标签: iphone ios ipad class uilabel

我使用 firstclassViewController secondclassViewController 创建了两个类名,  在我的 secondclassViewController 类中,我想访问 firstclassViewController UIlabel,我想将UILabel的值更改为新值。

这是我的代码段,

firstclassViewController.h

@property (strong, nonatomic) UILabel *navLabel;

firstclassViewController.m

navLabel = [[UILabel alloc] initWithFrame:CGRectMake(70,7,180,30)];
navLabel.text = @"Categories";
navLabel.font = [UIFont boldSystemFontOfSize:16.0f];
navLabel.textColor = [UIColor blackColor];
navLabel.backgroundColor = [UIColor clearColor];
navLabel.textAlignment = UITextAlignmentCenter;
[[self.navigationController navigationBar] addSubview:navLabel];

secondclassViewController.m

firstclassViewController.m *Obj=[[firstclassViewController.m alloc] initWithNibName:@"firstclassViewController.m" bundle:nil];
Obj.navLabel.text=@"New Value";

但我无法改变UILabel的价值..

任何帮助都会得到满足。

2 个答案:

答案 0 :(得分:2)

在secondclassViewController和firstclassViewController之间进行通信的最佳方式是使用委托。

在这篇文章中查看Rob的回答 Use of Delegates to Communicate Between View Controllers

一般的想法是......你的第一个控制器应该设置第二个委托指向第一个视图控制器。

答案 1 :(得分:1)

实现此目的的一种方法是将UILabel对象从第一个视图控制器传递到segue中的第二个对象。当您执行firstclassViewController *Obj = [[firstclassViewController alloc] initWithNibName:@"firstclassViewController" bundle:nil];时,您正在创建新实例,因此您对标签所做的更改仅适用于视图控制器的此实例。