Xcode - 设置标签文本返回(null)

时间:2013-07-18 11:58:08

标签: ios objective-c xcode label xib

我只想更改Label的文本。我有一个ViewController到一个Xib接口,其中标签创建并链接到ViewController。我只想创建一个这个视图控制器的实例,想要更改标签的文本:

NewFormScoreViewController * newPoints=[[NewFormScoreViewController alloc] init];
[newPoints.TheNewScoreLabel setText:[NSString stringWithFormat:@"%i",newScore]];
[newPoints.view setFrame:CGRectMake(500, 500, newPoints.view.frame.size.width,  newPoints.view.frame.size.height)];
[self.view addSubview:newPoints.view];

视图是可见的,但只显示占位符,而不是新的String。 [NSString stringWithFormat:@“%i”,newScore]返回所需的String,但似乎转移不起作用。但为什么?怎么了?

5 个答案:

答案 0 :(得分:1)

stringWithFormat:方法中,如果您的变量是int,请使用%d,如果它是浮点数,%f%@用于{{ 1}}或其他类型。

答案 1 :(得分:0)

使用这个...

[newPoints.TheNewScoreLabel setText:newScore];

答案 2 :(得分:0)

您没有提及任何关于“从哪里”您要更改UILabel的值的内容。如果您只是想从同一个View Controller更改UILabel的值,那么您可以这样做:

yourLabel.text = [NSString stringWithFormat:@"%d",newScore];

但是如果你想改变其他UIViewController的值,那么有两种可能性。您可以传递数据前进和后退。

在这种情况下,您应该参考:Passing Data between View Controllers

答案 3 :(得分:0)

您可以使用

[newPoints.TheNewScoreLabel setText:newScore];

OR

[newPoints.TheNewScoreLabel setText:[NSString stringWithFormat:@"%d",newScore]];

而不是

[newPoints.TheNewScoreLabel setText:[NSString stringWithFormat:@"%i",newScore]];

因为

%d扫描整数作为带符号的十进制数,但%i 允许默认为十进制,但也允许十六进制(如果前面带有“0x”)和八进制(如果前面带有“0”)。 / p>

答案 4 :(得分:0)

您的代码没问题。

但是这个课是一个黑盒子。 这是故事板,笔尖文件还是手动实现?

标签对象的指针是否存储在ivar中?