如何使用变量绑定表单上的控件

时间:2014-03-25 06:08:11

标签: ios objective-c

我刚开始研究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。看起来我需要做一些事情来链接我的变量与窗体上的控件。什么?

提前致谢。

2 个答案:

答案 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;
}