インスタンスメッセージへの認識されないセレクターが非常に一般的であることは知っていますが、私のプロジェクトでそれを引き起こしている原因を見つけることができないようです. 特定のボタンがタップされたときに、基本的にあるコントローラーから別のコントローラーにセグエしようとしています。ストーリーボードでセグエを定義します。ただし、ボタンはストーリーボードでは作成されません。ボタンはView Controllerでプログラムによって作成され、その後、私がセグエしようとしているコントローラーによって継承されます。これが私がやろうとしていることのコードです: まず、これはボタンを持つ ButtonViewController.m の一部であり、それは私が継承しているこのコントローラーです
UIButton *EButton=[UIButton buttonWithType:UIButtonTypeCustom];
[EButton setFrame:CGRectMake(0, 450, 106, 60)];
[EButton setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin];
[EButton setImage:[UIImage imageNamed:@"test1.png"] forState:UIControlStateNormal];
[EButton setImage:[UIImage imageNamed:@"test2.png"] forState:UIControlStateHighlighted];
[EButton setEnabled:YES];
[EButton addTarget:self action:@selector(EButtonPressed) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:EButton];
-(IBAction)EButtonPressed:(id)sender
{
[self performSegueWithIdentifier:@"WorldtoE" sender:self];
}
ここで、この ButtonViewController.m を WorldViewController に継承します。(この理由は、アプリ全体で別のコントローラーにこのボタンが必要であり、必要に応じて一度だけ変更することを好むからです)。これで、アプリを実行しているときにボタンが完璧に作成されましたが、タップするとすぐに次のエラーが表示されます: キャッチされていない例外 'NSInvalidArgumentException' によるアプリの終了、理由: '-[WorldViewController EButtonPressed]: 認識されないセレクターインスタンスに送信 -(IBAction)EButtonPressed:(id)sender を WorldViewController .h ファイルで定義しようとしましたが、.m ファイルに ibaction 関数全体を含めようとしましたが、ボタンをタップすると同じ NSInvalidArgumentexception が発生します. 私は何を間違っていますか?はい、ストーリーボードでセグエに同じタイトルを付けました。