我只想更改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,但似乎转移不起作用。但为什么?怎么了?
答案 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中?