iPhone 用のポップアップを作成するFPPopoverクラスを使用しています。readme ファイルにある正確な手順に従いましたが、xib ファイルの UIbutton を使用する代わりに、プログラムで作成された UIBarButtonItem を使用しています。しかし、次のエラーが表示されます。
キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[UIBarButtonItem スーパービュー]: 認識されないセレクターがインスタンス 0x6a3e420 に送信されました'
readme ファイルと同じコードをコピーして貼り付けましたが、(UIButton*)okButton を (id)sender に変更しただけです (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];
}
UIButtonではないUIBarButtonItemと関係があるのではないかと考えていましたか?それとも他のものですか?UIBarButtonItem を UIButton に変換しようとしましたが、それでも同じエラーが発生しました。それに対する解決策はありますか?
念のためもう 1 つ注意してください: これは、バー ボタンと共にナビゲーション バーをプログラムで作成した方法です。
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;