-1

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];
}

そして、これはツールバーボタンから呼び出す方法です:

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

と間違って呼んでいtarget:self action:@selector(bottomCenter:)ますか?

4

1 に答える 1

0

これで私の問題は解決しました: stackoverflowリンク

この問題は、UIView のサブクラスではない UIBarButtonItem が原因でした...

于 2012-12-14T11:08:34.460 に答える