UIButtons不工作

时间:2011-05-06 01:58:25

标签: objective-c cocoa-touch ios uiviewcontroller uibutton

我有一些Objective-C代码可以在两个视图之间进行转换。我有转换代码。我想要做的是转换到按钮按下的视图,但是这只在我生成带代码的按钮时才起作用,它不适用于我在IB中创建的按钮并链接到代码(使用文件的所有者等。)。

这是我的一些代码:

- (void)goToTwo {
    ALPHAAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    [appDelegate displayView:2];
}

- (void)viewDidLoad {
    NSLog(@"load01");

    //Button Code
    UIButton *btnOne = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    btnOne.frame = CGRectMake(40, 40, 240, 30);
    [btnOne setTitle:@"One!" forState:UIControlStateNormal];
    [btnOne addTarget:self action:@selector(goToTwo)          forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btnOne];

    [super viewDidLoad];
}

当视图加载时,我正在创建一个按钮,以便我有两个,一个用代码创建,一个在IB中,这两个目前都会做同样的事情(转换到下一个视图),

我的.h文件:

#import <UIKit/UIKit.h>


@interface View1 : UIViewController {

}

-(IBAction) goToTwo:(id)sender;

@end

我很确定我正确地将按钮链接到该功能,将TouchUpInside旁边的节点拖到文件所有者,然后单击方法名称。

关于代码生成按钮的工作原理以及IB按钮没有的任何想法?

提前多多感谢。

1 个答案:

答案 0 :(得分:1)

IBAction被命名为goToTwo:(结尾处为冒号),但在.m文件中实现并由代码中创建的按钮调用的方法是goToTwo(结尾没有冒号)。

更改IBAction(并在IB中重新连接)或更改.m文件中的方法实现以匹配.h文件中的声明。