为什么 setStringValue 调用在 viewDidLoad 和 viewDidAppear 中有效,但在其他方法中无效?

why setStringValue call works in viewDidLoad and viewDidAppear but not in other methods?

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

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

 [_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 消息,但标签的值未更改...

非常感谢任何帮助。

向我指出我可以在该主题上了解更多信息的资源也可以达到目的,我们也将不胜感激。

此致,约翰。

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