从另一个类更新textField的文本

时间:2011-02-25 20:36:30

标签: ios objective-c uitextfield

我正在尝试从另一个类更新一个文本字段:

我有两个班级:

  @interface FlipsideViewController : UIViewController <PostDistanceControllerDelegate>  {
id <FlipsideViewControllerDelegate> delegate;

IBOutlet UITextField *currentStatus;
IBOutlet UITextField *currentUpdateDate;
}
@property ...

在我的FlipsideViewController.m中,我可以使用:

@implementation FlipsideViewController

//....

- (IBAction)done:(id)sender{
   currentStatus.text=@"TOTO";
}

现在我有第二堂课,我正在尝试更新第一堂课的文字......

@implementation OthersideViewController

-(void)setStatus{
   [FlipsideViewController currentStatus.text=@"TEST"};
}

我知道我无法重新初始化控制器,因为它已经初始化了。我试图extern currentStatus字段,它不起作用。我尝试使用getter和setter,就像你在Java中做的那样,调试器说:无法识别的选择器

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您正在尝试通过向类发送消息来设置成员的属性,这就是为什么它不起作用。您需要引用FlipViewSideController的实例并调用如:

-(void)setStatus{
   [FlipsideViewControllerInstance currentStatus.text=@"TEST"};
}

因此,要么将FlipViewController实例作为参数

传递给setStatus方法
-(void)setStatusOfViewControllerLabel:(FlipViewController *) FlipsideViewControllerInstance {
   [FlipsideViewControllerInstance currentStatus.text=@"TEST"};
}

或者在OthersideViewController对象中保留对它的引用。

为了清晰而编辑。

答案 1 :(得分:0)

假设您已声明属性然后合成它,并且您有一个“FlipsideViewController * flipside”变量,那么您可以使用

[flipside currentStatus].text = @"TEST";

[[flipside currentStatus] setText:@"TEST"];