我有3个通过Xcode的Interface Builder创建的UIButton。
在Controller.h中定义了IBOutlet和IBAction,如下所示:
@property (strong, nonatomic) IBOutlet UIButton *btnToday;
@property (strong, nonatomic) IBOutlet UIButton *btnToday_less_1;
@property (strong, nonatomic) IBOutlet UIButton *btnToday_less_2;
- (IBAction) setBtnToday: (UIButton *) sender;
- (IBAction) setBtnToday_less_1: (UIButton *) sender;
- (IBAction) setBtnToday_less_2: (UIButton *) sender;
在我的 Controller.m 文件中有这个代码:
@synthesize btnToday;
@synthesize btnToday_less_1;
@synthesize btnToday_less_2;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[btnToday setTitle:@"Today" forState: UIControlStateNormal];
[btnToday_less_1 setTitle:@"Yesterday" forState: UIControlStateNormal];
[btnToday_less_2 setTitle:@"Day before yesterday" forState: UIControlStateNormal];
}
上面的代码可以正常运行,但是如果我实现了IBAction就不能运行。
实现如下:
-(IBAction)setBtnToday:(UIButton *)sender{ /* a method call */ }
-(IBAction)setBtnToday_less_1:(UIButton *)sender{ /* a method call */ }
-(IBAction)setBtnToday_less_2:(UIButton *)sender{ /* a method call */ }
如果我对任何IBOutlet进行NSLog,它们都会返回nil。如果从Controller.m文件中删除IBAction的代码,则它会重新开始工作。
我做错了什么?
注意:不起作用意味着它编译没有错误并且运行,但我试图在UIButton上设置的文本没有更新。