为什么setStringValue调用在viewDidLoad和viewDidAppear中工作但在其他方法中不起作用?

时间:2015-08-21 18:27:01

标签: objective-c cocoa nstextfield

我正在尝试更改标签的值。

任何人都可以解释为什么以下方法调用:

 [_detailLabel setStringValue:@"this is new label value"];
如果我通过viewDidLoad和viewDidAppear方法进行调用,

会起作用,但它在我创建的方法中不起作用:

-(void)changeLabelValue : (NSString *) newVal {
    [_detailLabel setStringValue:@"this is new label value"];
    NSLog (@"Hello from changeLabelValue method");
}

请注意,当我从我的代码中的任何地方调用此方法时,会显示NSLog消息,但标签的值不会更改...

非常感谢任何帮助。

指向我的资源,我可以在这个主题上学到更多知识,也将深受理解。

问候,约翰。

1 个答案:

答案 0 :(得分:2)

确保在调用changeLabelValue:(或已显示视图控制器)后调用viewDidLoad。如果您在加载视图之前调用它,_detailLabel将为nil,因为它尚未加载。