我刚开始研究iOS开发观看斯坦福iOS课程,但看起来我已经遗漏了一些东西。
我有UILabel和UIButton的表格。当用户按下按钮时,必须将按钮的标题添加到标签文本中。
这是我目前的CalculatorViewController.h:
#import <UIKit/UIKit.h>
@interface CalculatorViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *display;
@end
这是一个CalculatorViewController.m:
#import "CalculatorViewController.h"
@implementation CalculatorViewController
@synthesize display = _display;
- (IBAction)digitPressed:(UIButton *)sender {
NSString *digit = [sender currentTitle];
UILabel *myDisplay = self.display;
myDisplay.text = [myDisplay.text stringByAppendingString:digit];
}
@end
问题是self.display(和myDisplay)变量的值为nil。看起来我需要做一些事情来链接我的变量与窗体上的控件。什么?
提前致谢。
答案 0 :(得分:1)
您需要将控件,Interface Builder中的UILabel
链接到CalculatorViewController
类中的变量。
文件的所有者(谈论Xib文件)很可能是您的CalculatorViewController
,因此您需要控制+拖动文件的所有者(或代表您的对象) VC)到控件,您将看到一个菜单,其中包含您的类中声明的IBOutlet
变量,因此您选择要表示控件的那个。
您可以通过两种方式检查此链接是否正确设置:(1)在Interface Builder中选择UILabel,查看Connections Inspector中是否存在与该变量的连接,或者(2)在您的代码中#39; ll看到IBOutlet声明附近的子弹,如果子弹是空心的,则未设置连接,如果子弹已填满则连接已设置。
答案 1 :(得分:0)
不需要这一行
UILabel *myDisplay = self.display;
您已在界面文件中声明了标签
- (IBAction)digitPressed:(UIButton *)sender
{
NSMutableString *string = [myDisplay.text stringByAppendingString:sender.titleLabel.text];
myDisplay.text = string;
}