我无法将.xib中的按钮链接到.m文件中的方法

问题描述:

(我刚刚学习了Objective-C,我仍然不知道如何通过写代码来生成UI元素。)我无法将.xib中的按钮链接到.m文件中的方法

.xib中有一个按钮。 .m中有一种方法。

我想通过ctrl-click“Touch up Inside”和“File's owner”链接这两个东西。但是,当我将鼠标光标移到文件所有者的图标上时,没有方法显示。

的情况是这样的: http://www.badongo.com/pic/13577347

.h文件:

#import <UIKit/UIKit.h> 
@interface ChangeViewController : UIViewController 
{ 

} 

-(IBAction)goToSecondView:(id)sender; 
-(IBAction)goToCalculatorView:(id)sender; 
-(IBAction)test:(id)sender; 
@end 

.m文件:

#import "ChangeViewController.h" 
#import "SecondViewController.h" 
#import "CalculatorViewController.h" 
@implementation ChangeViewController 
-(IBAction)goToSecondView:(id)sender 
{ 
    SecondViewController *secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
    [self.navigationController pushViewController:secondViewController animated:YES]; 
    [secondViewController release]; 
} 

-(IBAction)goToCalculatorView:(id)sender 
{ 
    CalculatorViewController *calculatorViewController =[[CalculatorViewController alloc] initWithNibName:@"CalculatorViewController" bundle:nil];  
    [self.navigationController pushViewController:calculatorViewController animated:YES]; 
    [calculatorViewController release]; 
} 

这有什么错?谢谢。

+0

显示.h文件的代码...你如何定义该方法? –

+0

我用代码更新了我的问题,谢谢。 – lavitanien

另外,还要确保你的文件的所有者类是类型 'ChangeViewController' 的。为此,请选择文件所有者,转到检查员(按命令+ 4),并将其类别设置为'ChangeViewController'(如果尚未设置)。

+0

谢谢。但是,如果将其从“RootViewController”更改为“ChangeViewController”,可以吗? – lavitanien

+0

文件的所有者只是将加载xib文件的对象。你为什么要加载一个xib文件,其文件所有者可以通过viewControllerB来说viewControllerA?所以,如果你准备了一个视图controller.h和.m文件,使用outlet和IBActions并且想创建一个使用这些插座和IBActions的xib文件,你需要在xib文件中设置文件类的所有者,这样它识别出口和IBAction方法。 –

请确认以下几点:

1)您是否在.h文件中定义了方法?

2)你有没有与定义的方法 - (IBAction为)

希望你能够绑定它。

干杯。

双击文件所有者,你会看到你定义的方法列表。通过拖放来连接控制方法。一旦你将这个方法附加到你的按钮上,将会显示所有可以触发的事件。选择TouchUpInside ...

link