我有一些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按钮没有的任何想法?
提前多多感谢。
答案 0 :(得分:1)
IBAction被命名为goToTwo:
(结尾处为冒号),但在.m文件中实现并由代码中创建的按钮调用的方法是goToTwo
(结尾没有冒号)。
更改IBAction(并在IB中重新连接)或更改.m文件中的方法实现以匹配.h文件中的声明。