从子类访问Root类中变量的值

时间:2013-03-20 18:02:30

标签: ios xcode class variables

我真的无法想出这个。 我有一个名为additionalMathViewController的VC,它向用户显示问题。如果用户回答错误,则将用户定向到另一个VC,该VC是additionalMathViewController的子类,名为incorrectViewController。

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

currentQuestion是一个计数器变量,可以增加用户正确提问的所有内容,并可以显示另一个问题。如果用户得到错误的问题,我想转到wrongViewController。这是我的代码

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

如果用户选择A并且它是正确的则显示另一个问题。如果是错误的执行Segue到incorrectViewController

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

这里我想从additionalMathViewController

中获取currentQuestion的值
incorrectImage.image = [UIImage imageNamed:left[currentQuestion]];

此当前图像不是additionalmathViewController的值

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

新视图控制器是一个新实例,因此不知道上一个实例对于某个值的含义。您需要在prepareForSegue方法中将currentQuestion值传递给新控制器。

将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;
}