私が Objective-C のまったくの初心者であっても、現在のコードがどのように見えるかという理由で、私はおそらく優れたプログラマーと優れた頭脳の両方から撃たれるに値するでしょう。とにかく、私は質問がランダムな順序であり、各質問の選択肢もランダムな順序であるロゴクイズを作成しています. とにかく、回答が選択されたときにページがどこにリダイレクトされるかを確認するために、以下のコードを既に持っています。
- (IBAction)answerA:(UIButton *)sender {
if(imgView.image == [UIImage imageNamed:@"1.png"])
{
if([btnA.titleLabel.text isEqualToString:@"1"])
{
[btnA addTarget:self action:@selector(correctView) forControlEvents:UIControlEventTouchUpInside];
}
else
{
[btnA addTarget:self action:@selector(wrongView) forControlEvents:UIControlEventTouchUpInside];
}
}
else if(imgView.image == [UIImage imageNamed:@"2.png"])
{
if([btnA.titleLabel.text isEqualToString:@"2"])
{
[btnA addTarget:self action:@selector(correctView) forControlEvents:UIControlEventTouchUpInside];
}
else
{
[btnA addTarget:self action:@selector(wrongView) forControlEvents:UIControlEventTouchUpInside];
}
}
- (IBAction)answerB:(UIButton *)sender {
if(imgView.image == [UIImage imageNamed:@"1.png"])
{
if([btnB.titleLabel.text isEqualToString:@"1"])
{
[btnB addTarget:self action:@selector(correctView) forControlEvents:UIControlEventTouchUpInside];
}
else
{
[btnB addTarget:self action:@selector(wrongView) forControlEvents:UIControlEventTouchUpInside];
}
}
else if(imgView.image == [UIImage imageNamed:@"2.png"])
{
if([btnB.titleLabel.text isEqualToString:@"2"])
{
[btnB addTarget:self action:@selector(correctView) forControlEvents:UIControlEventTouchUpInside];
}
else
{
[btnB addTarget:self action:@selector(wrongView) forControlEvents:UIControlEventTouchUpInside];
}
}
}
これは機能しますが、問題は、対応するページに移動するためにボタンを 2 回クリックする必要があることです。問題は、ボタンがクリックされるとIBAction自体がすでにトリガーされるイベントであることを知っているため、ボタンが再度クリックされた場合にのみトリガーされる条件ステートメント内にコードがあります。私の質問は、ボタンが1回クリックされた場合に現在の質問をすぐにチェックしてから正しい答えをチェックするように、これを変更するにはどうすればよいですか?