当以编程方式调用方法但在IB中工作时,应用程序崩溃

时间:2012-12-13 15:22:57

标签: iphone objective-c ios ibaction

当我从IB中的按钮运行此操作时,该方法被称为罚款。如果我从代码运行它,应用程序崩溃,无法识别的选择器发送到实例错误

这是方法:

-(void)bottomCenter:(id)sender
{
    [self popover:sender];
}

-(void)popover:(id)sender
{
    //the controller we want to present as a popover
    DemoTableController *controller = [[DemoTableController alloc] initWithStyle:UITableViewStylePlain];
    controller.delegate = self;
    popover = [[FPPopoverController alloc] initWithViewController:controller];

    //popover.arrowDirection = FPPopoverArrowDirectionAny;
    popover.tint = FPPopoverDefaultTint;

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
        popover.contentSize = CGSizeMake(300, 500);
    }
    else {
        popover.contentSize = CGSizeMake(200, 300);
    }

    popover.arrowDirection = FPPopoverArrowDirectionAny;

    //sender is the UIButton view
    [popover presentPopoverFromView:sender];
}

这就是我从toolBar按钮调用它的方式:

 UIBarButtonItem *item3 = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"icons-footer-filter.png"] style:UIBarButtonItemStylePlain target:self action:@selector(bottomCenter:)];

我是否使用target:self action:@selector(bottomCenter:)错误地调用了它?

1 个答案:

答案 0 :(得分:0)

这解决了我的问题:stackoverflow link

问题是由于UIBarButtonItem不是UIView的子类......