2010-11-20 73 views
0

我在我的主视图(btn_easy,btn_medium,btn_hard)上有3个按钮,我通过xCode界面生成器库 - Round Rect Button项将其拖到我的主视图上。宣布他们在我的ViewController.h和ViewController.m文件,像这样经过:objective-c多个按钮单击方法

//ViewController.h 
IBOutlet UIButton *btn_easy; 
IBOutlet UIButton *btn_medium; 
IBOutlet UIButton *btn_hard; 

@property(nonatomic,retain) IBOutlet UIButton *btn_easy; 
@property(nonatomic,retain) IBOutlet UIButton *btn_medium; 
@property(nonatomic,retain) IBOutlet UIButton *btn_hard; 

//ViewController.m 
@synthesize btn_easy,btn_medium,btn_hard; 

然后我接着提出了在Interface Builder中连接插座的“文件的所有者”通过点击btn_easy,btn_medium,btn_hard(顺序)在我的视图,去连接督察和拖动“新的引用出口”文件的所有者(不知道这是我应该在这里做的)。

我的方法,才能使按钮在我ViewController.m文件内容如下:

-(void)buttonPressed: (id) sender{ 
     NSLog(@"button clicked = %@",sender); 
} 

我的问题是,当我点击任何一处出现任何的按钮在我的NSLog的时候我实际上应该看“当点击btn_easy时,按钮clicked = btn_easy“,等等。

请帮助..... 谢谢

回答

2

你已经糊涂了出口和动作,我想。一个出口 - 就像你所定义的那样 - 给予一个班级与另一个班级的外部联系。行动是控制可以触发的事情。

您应该添加buttonPressed到您的.h为:

- (IBAction)buttonPressed:(id)sender; 

要有Interface Builder中认识到它作为一个动作。然后你可以控制 - 从一个按钮链接到你的班级(这似乎是文件的所有者),并将其连接起来。我猜,你会想要做三次。

这与拖动一个链接从'touch up inside'到你的班级,就是当按钮在iOS上生效时一样。

+0

确定,使按钮抛出一个动作(NSLog警报)到控制台,但我期待它抛出“按钮clicked = btn_easy”和其他两个以及但我实际上得到:“button clicked = >“ – sadmicrowave 2010-11-20 15:25:12

+0

如何获取点击的按钮名称?那么我可以为这三种单独的操作做一个IF语句,这些操作应该发生,取决于是否轻松,中等或难以点击? – sadmicrowave 2010-11-20 15:26:04

+0

另外,如何在.m文件中使用它之前知道何时以及在.h文件中声明哪些方法? – sadmicrowave 2010-11-20 16:16:59