【发布时间】:2013-12-11 18:29:56
【问题描述】:
我在所谓的应用程序中有 2 个屏幕。第一个(ViewController.m)获取值并将其发送到 ViewController2.m 中的方法。然后,第二个视图中标签的预加载文本更改为传输的字符串。
案例是:
1) NSLog 打印从第一页的文本字段中获取的正确输出
2) 但是,setText 方法不会改变标签的文本。
3) 奇怪的是,相同的代码可以更改 viewDidLoad 中标签的文本。
- (void) setText:(NSString *)paramText {
self.myLabel.text = paramText;
NSLog(@"%@", paramText);
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.myLabel.text = @"try";
}
我如何从 ViewController.m 调用 setText:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"ikinciEkran"]) {
ViewController2 *nextController = segue.destinationViewController;
[nextController setText:self.myText.text];
}
}
【问题讨论】:
-
你是在主线程调用setText方法吗?
-
看起来你做的一切都是正确的。添加一些
NSLogs 以查看您到达prepareForSegue:,并输入if。 -
我做了并且看起来它进入了 if 但我仍然得到标签的相同结果。
-
我无法在 setText: 方法中将标签文本更改为静态文本。
标签: ios objective-c uilabel