2012-04-06 3 views
0

ボタンをクリックすると、サブビューの画像が隠されているかどうかを確認しようとしています。ログは表示されますが、イメージの隠れた状態をどうにかして取得できません。IB画像が隠れているかどうか確認するためにサブビューする

ここで何が問題になりますか?あなたが私を助けることができますように!

のviewDidLoad:

SubSlide1Hoofdstuk3 *subslide1 = [[SubSlide1Hoofdstuk3 alloc] init]; 
CGRect frame = self.view.frame; 
frame.origin.x = 0; 
frame.origin.y = 0; 
subslide1.view.frame = frame; 

// This works finaly 
UIImageView *zwart = subslide1.imageZwart; 
[zwart setImage:[UIImage imageNamed:@"imageblack.jpg"]]; 
[subslide1.b1 addTarget:self action:@selector(switchImageZwart:) forControlEvents:UIControlEventTouchUpInside]; 

[_scrollView addSubview:subslide1.view]; 

IBActionサブビューで画像を確認することが隠されている:

-(IBAction)switchImageZwart:(id)sender 
{ 
    SubSlide1Hoofdstuk3 *switchactie = [[SubSlide1Hoofdstuk3 alloc] init]; 
    UIImageView *wit = switchactie.imageWit; 
    UIImageView *zwart = switchactie.imageZwart; 

    if(zwart.hidden == YES) { 
     NSLog(@"Image black is hidden!"); 
    } else if(wit.hidden == YES) { 
     NSLog(@"Image white is hidden!"); 
    } else { 
     NSLog(@"Can't say... :("); 
    } 
} 

答えて

2

ここでの問題は、あなたの-(IBAction)switchImageZwart:(id)senderメソッド内であなたがSubSlide1Hoofdstuk3の新しいインスタンスを作成し、そのを確認することですプロパティ(UIImageViews)の代わりに、viewDidLoad:で作成した実際のUIImageViewオブジェクトを確認してください。あなたが実際に望むのは、subslide1への参照を保持し、代わりにそれを確認することです。

ps。チェックメソッドを呼び出すボタンが実際にあなたのsubslide1のサブビューであるので、次のような参照を得ることができます:

SubSlide1Hoofdstuk3 *switchactie = [sender superView]; 

EDIT:あなたの実際のコードの例:あなたの.hファイル内

@synthesize subslide1; 

- (void)viewDidLoad 
{ 
    //... 
    self.subslide1 = [[SubSlide1Hoofdstuk3 alloc] init]; 
    CGRect frame = self.view.frame; 
    frame.origin.x = 0; 
    frame.origin.y = 0; 
    self.subslide1.view.frame = frame; 

    // This works finaly 
    UIImageView *zwart = self.subslide1.imageZwart; 
    [zwart setImage:[UIImage imageNamed:@"imageblack.jpg"]]; 
    [self.subslide1.b1 addTarget:self action:@selector(switchImageZwart:) forControlEvents:UIControlEventTouchUpInside]; 

    [_scrollView addSubview:self.subslide1.view]; 

} 


-(IBAction)switchImageZwart:(id)sender 
{ 
    SubSlide1Hoofdstuk3 *switchactie = self.subslide1; 
    UIImageView *wit = switchactie.imageWit; 
    UIImageView *zwart = switchactie.imageZwart; 

    if(zwart.hidden == YES) { 
     NSLog(@"Image black is hidden!"); 
    } else if(wit.hidden == YES) { 
     NSLog(@"Image white is hidden!"); 
    } else { 
     NSLog(@"Can't say... :("); 
    } 
} 
+0

ありがとう:あなたの.mファイル内

@property(nonatomic, strong) SubSlide1Hoofdstuk3 *subslide1; 

あなたのクイック返信、私はこれを動作させることはできません。私は送信者のSuperViewを試しましたが、それでも画像を再製作しません:/ maby私は参照を作ることに間違ったことをしています、私はまだ試しています。 – Joey

+0

あなたの 'SubSlide1Hoofdstuk3'の基本クラスは何ですか? UIViewのサブクラスでなければ、.hファイルのプロパティを '@property(nonatomic、strong)SubSlide1Hoofdstuk3 * subslide1'のように設定し、それを合成して' self.subslide1'のように参照することができます。 。これがあなたのために働くことを願っています。 – Alladinian

+0

もう一度、私はSubSlideHoofdstuk3.hのプロパティを試してみました。 '@property(nonatomic、strong)SubSlide1Hoofdstuk3 * subslidereference;そして.mファイルで合成します。次に、RootSlide.mの中でそれを 'UIImageView * zwart = subslidereference.imageZwart;'のように呼び出そうとしますが、これはエラーです。 self.subslidereferenceはどちらも動作しません。 – Joey

関連する問題