从函数输入文本到标签文本?

时间:2014-09-28 13:41:37

标签: ios objective-c label iboutlet

我有一个功能,为了简单起见,我们说给我一周中的某一天(它做了别的事,但这并不重要)。我使用NSLog来验证函数确实提供了一个值,但我不能在生活中获取文本输入并显示在iOS模拟器的标签上。相关代码是:

-(void)displayLabel {
NSString *result=[self days];
NSLog(@"%@", result);
displayLabel.text=result;
}

我也试过代替displayLabel.text = result,stringWithFormat,但我认为语法错误了:

displayLabel.text= [NSString stringWithFormat@"%@":result];

标签在我的.h文件中有一个插座和一个动作,如下所示:

@interface ViewController : UIViewController
{
IBOutlet UILabel *displayLabel;
}
-(IBAction)displayLabel:(id)sender;

@end

最后,标签本身在故事板中的视图控制器上放置并保持空白。我不确定这是否有任何影响。

那么,我做错了什么?我可以只显示文字吗?我的语法是否关闭?获取文本的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

问题可能是:

  • 您的插座是否连接到故事板?

  • 您的标签文字颜色是否为白色?

  • 您的标签宽度是1还是0?

尝试检查这些内容,或者尝试在内部创建另一个带有黑色文本的标签(然后将覆盖它),只是为了查看它是否有效。

答案 1 :(得分:0)

我不确定为什么你坚持为方法和标签的名称使用相同的名称,为了避免在以后对错误进行故障排除时产生混淆,这是一个很好的做法。测试一下:

在.h

@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *displayLabel;
@end

创建IBOutlet以在UILabel中显示文本并更改其属性。仅当您需要与UI交互并执行某些功能时才创建IBAction(但是,很少在UILabel上使用)。

在.m

- (void)showDisplayLabel 
{
    NSString *result=[self days];
    NSLog(@"%@", result);
    self.displayLabel.text=result;
}