如果这是一个明显的问题,请道歉。我有一个VC A和一个VC B(它是A的子类)。在A的.m中我有一个名为currentQuestion的int计数器。如果用户输入了错误答案,VC A将转到VC B.在B中,我想访问currentQuestion的当前值,以便将正确的图像放在leftImageViewer中。它似乎将currentQuestion识别为已经实例化的变量,但没有显示正确的值。
leftImageViewer.image = [UIImage imageNamed:left[currentQuestion]];
答案 0 :(得分:0)
您必须将currentQuestion
的值传递给VCB
,因为VCB正在创建所有实例变量的全新实例(或者通常会发生这种情况,很难分辨出代码):
// an example of how to create 'VCB', this is NOT in 'VCB.m'
VCB *vcb = [[VCB alloc] init];
[vcb setCurrentQuestion:[self currentQuestion]];
// present 'vcb' how you are doing so now
当然,假设您有一个属性@property int currentQuestion
。
更一般地说,您需要查看inheritance和polymorphism的概念,以便更好地了解正在发生的事情。
<强>更新强>:
您的VCA
应如下:
@interface VCA : UIViewController
// ...
@property int currentQuestion; // this will allow 'currentQuestion' to be accessible
// ...
@end
为了理解为什么以及如何工作,我建议您更好地了解继承的工作原理。它是面向对象编程的基本概念。