我正在学习iPhone Dev并且我遇到了困难。我正在编写一个简单的计算器程序,但是当我尝试将计算器上的一个按钮连接到Interface Builder中的文件所有者时,我没有得到任何选项:
.h文件
@interface CalculatorViewController : UIViewController
{
CalculatorBrain *brain;
IBOutlet UILabel *label;
}
- (IBAction)digitPressed:(UIButton *)sender;
- (IBAction)operandPressed:(UIButton *)sender;
@end
.m文件
#import "CalculatorViewController.h"
@implementation CalculatorViewController
- (IBAction)digitPressed:(UIButton *)sender
{
//not implemented yet
}
- (IBAction)operandPressed:(UIButton *)sender
{
//not implemented yet
}
@end
据我所知,当我在界面构建器中使用我的CalculatorViewController.xib时,如果我尝试将按钮连接到文件的所有者,我应该有两个选项: 数字压缩 2. operandPressed
但是,我没有任何选择。我有什么想法吗?
感谢。
答案 0 :(得分:4)
答案 1 :(得分:0)
您是从按钮拖动到所有者还是反过来?
如果要从代码中引用nib中的对象,则定义IBOutlet
并从所有者拖动到对象。
如果要引用nib文件中对象的代码,则定义IBAction
并从对象拖动到所有者。
答案 2 :(得分:0)
我遇到了类似的问题。 问题是我重命名了ViewController。 XIB文件中包含视图控制器的名称。
当它与UI视图控制器类接口构建器的实际名称不匹配时,行为会很有趣。
要修复它,请将XIB文件作为源代码打开(右键单击它并使用Open As源代码) 这是一个XML文件。找到旧控制器的名称,然后将其更改为正确的名称。 我在XML下找到了它:
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.CustomClassName">xxxxxxViewController</string>