我正在阅读一个看似非常简单的教程,但无法让它发挥作用。目标是在UI视图中使用IB创建标签和按钮。该标签应该说“Hello World”,当您单击该按钮时,它会将文本更改为“Hello iPhone”。当我实现代码时,标签不会改变。当我调试时,我发现标签是“空”但我无法弄清楚为什么......我真的很感谢你的帮助。
标签的标签值为“55”。
我的代码如下所示: 在接口文件中:
-(IBAction)buttonTapped;
在主文件中:
-(IBAction)buttonTapped{
UILabel *label = (UILabel*) [window viewWithTag:55];
NSLog(@"The label's text is %s",label.text); //my debug statement
if([label.text isEqualToString:@"Hello World"])
label.text = @"Hello iPhone";
else
label.text = @"Hello World";
}
答案 0 :(得分:1)
假设您在ViewController中。我不知道你的窗户属性是什么。你也应该使用“%@”作为字符串。 Format Specifiers
-(IBAction) buttonTapped:(UIButton*)sender{
UILabel *label = (UILabel*) [self.view viewWithTag:55];
NSLog(@"The label's text is %@",label.text); //my debug statement
if([label.text isEqualToString:@"Hello World"])
label.text = @"Hello iPhone";
else
label.text = @"Hello World";
}
答案 1 :(得分:0)
在行之间读取它听起来就像你的行动方法没有被解雇。
您没有明确表示您如何知道标签文本是空白的,但我们是否可以假设您确实让NSLog输出其结果?如果你没有,那么我会参考我的第一句......检查你是否在Interface Builder中正确连接了按钮,指向一个插座动作。
答案 2 :(得分:-1)
在@interface中你应该有:
IBOutlet UILabel *label;
然后在你的 - (IBAction)按钮中只需:
NSLog(@"The label's text is %s",label.text); //my debug statement
if([label.text isEqualToString:@"Hello World"])
label.text = @"Hello iPhone";
else
label.text = @"Hello World";
}