我正在尝试从另一个类更新一个文本字段:
我有两个班级:
@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中做的那样,调试器说:无法识别的选择器
有什么想法吗?
答案 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"];