点击UIBarButtonItem时未调用动作

时间:2011-06-20 05:44:57

标签: iphone ios cocoa-touch uibarbuttonitem

注意:我只是在模拟器上测试了这个。

我想在代码中添加target-action,而不是在Interface Builder中将其作为IBAction连接。

theButton位于左上角的导航栏上,在IB中创建。

步骤:

  1. theButton声明为IBOutlet并将其连接到IB。

  2. viewDidLoad中添加了此内容:

    self.theButton.target = self;
    self.theButton.action = @selector(theAction);
    
  3. 我正在测试theAction

    - (void)theAction {
    NSLog(@"theAction called");
    //do some other stuff
    }
    
  4. 当我在模拟器中点击theButton时,没有任何反应。我根本没有看到NSLog声明。

    我错过了什么?

3 个答案:

答案 0 :(得分:4)

您是否已将操作连接到interface-builder中的按钮?

如果不是,您应该在.h文件中声明操作

-(IBAction)theAction;

更改.m文件上的操作名称

-(IBAction)theAction{

}

并将操作连接到interface-builder中的按钮。

答案 1 :(得分:3)

更改您的功能如下:

-(IBAction)theAction{
    NSLog(@"theAction called");
    //do some other stuff
}

如果你打电话给“@selector(theAction :);” 然后改变功能如下:

-(IBAction)theAction:(id)sender{
    NSLog(@"theAction called");
    //do some other stuff
}

希望它对你有所帮助。

如有任何困难,请告诉我。

答案 2 :(得分:0)

想出来。不得不做我的配置。我正在使用一个标签栏控制器,它为多个标签使用相同的视图控制器。每个视图控制器都会显示某些选项卡项的不同过滤数据。

因此,在这样的配置中,您必须确保为标签栏项目包含的每个视图控制器连接IBOutlets。我只连接了一个,这就是为什么它不适用于某些标签项。