无法将UIButton连接到XCode4中的ViewController

时间:2011-09-18 19:33:43

标签: xcode interface-builder ibaction iboutlet

我正在学习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

但是,我没有任何选择。我有什么想法吗?

感谢。

3 个答案:

答案 0 :(得分:4)

  • 检查文件的所有者是否设置为CalculatorViewController
  • 在IB中,单击按钮,然后单击最右侧的选项(连接,我认为它被称为)
  • 找到名为touchUpInside的操作。从旁边的圆圈拖动到文件所有者,然后会弹出两个操作。

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