iPhone: Fehler beim Verwenden der FPPopover-Klasse bei Verwendung mit einem UIBarButtonItem

Ich benutze dieFPPopover Klasse, die Popups für iPhones erstellt. Ich habe die genauen Schritte in der Readme-Datei befolgt, aber anstatt eine UI-Schaltfläche aus einer xib-Datei zu verwenden, verwende ich ein UIBarButtonItem, das programmgesteuert erstellt wurde. Ich erhalte jedoch den folgenden Fehler:

Beenden der App aufgrund einer nicht erfassten Ausnahme 'NSInvalidArgumentException', Grund: '- [UIBarButtonItem-Übersicht]: Unbekannter Selektor an Instanz 0x6a3e420 gesendet'

Ich habe den gleichen Code wie in der Readme-Datei eingefügt, aber ich habe gerade den (UIButton *) okButton mit (id) Absender geändert (id hier ist UIBarButtonItem *)

-(void)popover:(id)sender
{
    //the view controller you want to present as popover
    TestClass *controller = [[TestClass alloc] init];
    //our popover
    FPPopoverController *popover = [[FPPopoverController alloc] initWithViewController:controller];
    //the popover will be presented from the okButton view
    [popover presentPopoverFromView:sender];
    //release
    [controller release];
}

Ich dachte, es hat vielleicht mit dem UIBarButtonItem zu tun, das kein UIButton ist. Oder ist es noch etwas? Ich habe versucht, das UIBarButtonItem in UIButton zu konvertieren, habe aber trotzdem den gleichen Fehler gemeldet. Irgendwelche Lösungen dafür?

Noch eine Anmerkung für den Fall: So habe ich die Navigationsleiste programmgesteuert zusammen mit der Leistenschaltfläche erstellt:

UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(320, 0, 320, 44)];
UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:@"By Clubs"];
[navBar pushNavigationItem:navItem animated:NO];
UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"Filter"
                                               style:UIBarButtonItemStyleBordered
                                              target:self
                                              action:@selector(popover:)];


navItem.rightBarButtonItem = editButton;

Antworten auf die Frage(4)

Ihre Antwort auf die Frage