0

私は本当にこれを理解することはできません。ユーザーに質問を表示するadditionalMathViewControllerというVCがあります。ユーザーが間違って答えた場合、ユーザーは、incorrectViewControllerと呼ばれるadditionalMathViewControllerのサブクラスである別のVCに誘導されます。

#import "ViewController.h"
@interface additionalmathViewController : ViewController{
int currentQuestion;
}

currentQuestionは、ユーザーが質問を正しく取得し、別の質問を表示できるようにするすべてを増やすカウンター変数です。ユーザーが質問を間違えた場合は、incorrectViewControllerに移動します。これが私のコードです

- (IBAction)SelectA:(id)sender {
if ([self.correctAns isEqualToString:@"A"]) {
       [self showNextQuestion];
}
else{
  [self performSegueWithIdentifier: @"segueToIncorrect" sender:nil];
}
}

ユーザーがAを選択し、それが正しい場合は、別の質問を表示します。間違っている場合は、incorrectViewControllerにセグエを実行します

#import "additionalmathViewController.h"
@interface IncorrectImageViewController : additionalmathViewController

ここでは、additionalMathViewControllerからcurrentQuestionの値を取得したいと思います

incorrectImage.image = [UIImage imageNamed:left[currentQuestion]];

この現在の画像は、additionalmathViewControllerからの値ではありません

何か案は?

4

1 に答える 1

0

新しいViewControllerは新しいインスタンスであるため、前のインスタンスが値に対して何を持っていたかはわかりません。currentQuestion値をprepareForSegueメソッドの新しいコントローラーに渡す必要があります。

currentQuestionをプロパティにする

@interface IncorrectImageViewController
  @property (copy) NSInteger currentQuestion;
..

次に、prepareForSegueで、宛先コントローラーに値を設定します。

@implementation additionalmathViewController

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    IncorrectImageViewController *incorrect = [segue destinationViewController];
    incorrect.currentQuestion = self.currentQuestion;
}
于 2013-03-20T18:10:30.737 に答える