Ich verwende die FPPopover-Klasse, die Popups für iPhones erstellt. Ich habe die genauen Schritte befolgt, die in der Readme-Datei stehen, aber anstatt ein UIButton aus einer xib-Datei zu verwenden, verwende ich ein UIBarButtonItem, das programmgesteuert erstellt wird. Aber ich bekomme den folgenden Fehler:
Beenden der App aufgrund einer unbehandelten Ausnahme 'NSInvalidArgumentException', Grund: '-[UIBarButtonItem superview]: nicht erkannter Selektor, der an die Instanz 0x6a3e420 gesendet wird'
Ich habe den gleichen Code wie in der Readme-Datei kopiert und eingefügt, aber ich habe (UIButton*)okButton durch (id)sender ersetzt (das id hier ist UIBarButtonItem*)
-(void)popover:(id)sender
{
//Die Ansichts-Controller, den du als Popover präsentieren möchtest
TestClass *controller = [[TestClass alloc] init];
//Unser Popover
FPPopoverController *popover = [[FPPopoverController alloc] initWithViewController:controller];
//Der Popover wird von der Ansicht von okButton präsentiert
[popover presentPopoverFromView:sender];
//Release
[controller release];
}
Ich dachte vielleicht hat es etwas mit dem UIBarButtonItem zu tun, das kein UIButton ist? Oder ist es etwas anderes? Ich habe versucht, das UIBarButtonItem in UIButton umzuwandeln, hat aber immer noch den gleichen Fehler gegeben. Gibt es Lösungen dafür?
Noch eine Anmerkung, nur für den Fall: So habe ich programmgesteuert die Navigationsleiste zusammen mit der Leisten-Schaltfläche erstellt:
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(320, 0, 320, 44)];
UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:@"Nach Vereinen"];
[navBar pushNavigationItem:navItem animated:NO];
UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"Filter"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(popover:)];
navItem.rightBarButtonItem = editButton;