0

これが明らかな質問である場合はお詫び申し上げます。VC A と VC B (A のサブクラス) があります。A の .m には、currentQuestion という int カウンターがあります。ユーザーが間違った回答を入力すると、VC A は VC B に移動します。B では、正しい画像を leftImageViewer に配置するために currentQuestion の現在の値にアクセスしたいと考えています。currentQuestion は既にインスタンス化された変数として認識されているようですが、正しい値は表示されません。

leftImageViewer.image = [UIImage imageNamed:left[currentQuestion]];
4

1 に答える 1

0

VCB はすべてのインスタンス変数のまったく新しいインスタンスを作成しているため、currentQuestiontoの値を渡す必要があります (または、これは一般的に起こることであり、コードを見て判断するのは困難です)。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

より一般的には、継承ポリモーフィズムの概念を調べて、何が起こっているのかをよりよく理解する必要があります。

更新

次のVCAようになります。

@interface VCA : UIViewController
    // ...
@property int currentQuestion; // this will allow 'currentQuestion' to be accessible
    // ...
@end

これがなぜ、どのように機能するのかを理解するために、継承がどのように機能するかをよりよく理解することをお勧めします。これは、オブジェクト指向プログラミングの基本概念です。

于 2013-03-20T16:23:06.320 に答える