Я использую класс FPPopover, который создает всплывающие окна для iPhone. Я выполнил точные шаги, которые находятся в файле readme, но вместо использования UIbutton из xib файла я использую UIBarButtonItem, созданный программно. Но я получаю следующую ошибку:
Завершение приложения из-за неперехваченного исключения "NSInvalidArgumentException", причина: '- [UIBarButtonItem superview]: непризнанный селектор, отправленный экземпляру 0x6a3e420'
Я скопировал тот же код, что и в файле readme, но я просто изменил okButton (UIButton *) с (id) отправителем (здесь здесь 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];
}
Я думал, может быть, это связано с UIBarButtonItem, который не является UIButton? Или это что-нибудь еще? Я попытался преобразовать UIBarButtonItem в UIButton, но все же дал мне ту же ошибку. Любые решения?
Еще одно замечание на всякий случай: так я программно создал навигационную панель вместе с кнопкой панели:
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;