2012-02-08 7 views
0

私は現在、ボタンを作成するときにプログラムを作成しようとしています。クリックすると、そのアルファはゼロになります。それはシンプルなシームレスかもしれませんが、それは私を夢中にさせます。viewdidloadのローカル変数

あなたは私が、私はすべてのストーリーボードを使用していないコードにし、このを行う必要があり、ボタンをたくさん作ってるんだ、私の最終的なプロジェクトでは、参照してください。

は、相続人は、私が今まででこれまで

//mediumboard.h 
#import <UIKit/UIKit.h> 
@interface MediumBoard : UIViewController 
@property (weak, nonatomic) IBOutlet UIScrollView *ScrollMedium; 
@end 

と実装に

- (void)viewDidLoad{ 
UIButton *Button1x1x1 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[Button1x1x1 addTarget:self action:@selector(Press1x1x1) forControlEvents:UIControlEventTouchUpInside]; 
Button1x1x1.frame = CGRectMake(50,50, 80, 130); 
[self.view addSubview:Button1x1x1]; 
} 

を持っているもの、それが正常に動作します。それはボタンを作成し、それを私の画面に表示します。私はこの

-(void)Press1x1x1 { 
Button1x1x1.alpha = 0;} 

を実装しようとすると、 は、しかし、それは私が変数Button1x1x1がのviewDidLoadに局在していることをその変数のローカライズの問題を知っている、と私に

エラー「宣言されていない識別子 『Button1x1x1』の使用」を与えますしかし、私はこの問題をどのように解決するか考えていません。私はそれをグローバル変数にしていますか?私はストーリーボードを使用できないことを覚えておいてください。

追加情報:Button1x1x1の参照は、コード内でどこにもありません。

答えて

0

あなたはそうのようなインスタンス変数として宣言、グローバル変数を宣言する必要はありません。

@interface MediumBoard : UIViewController { 
@private 
    UIButton *myButton_; // Or Button1x1x1, whatever you want to call it 
} 
@property (weak, nonatomic) IBOutlet UIScrollView *ScrollMedium; 
@end 
+0

これは機能しませんでした。実装したときにSIGBRTエラーが発生しました。 –

1

あなたが引数として送信者を渡すセレクタを使用することができます。

[button1x1x1 addTarget:self action:@selector(press1x1x1:) forControlEvents:UIControlEventTouchUpInside]; 
                //^emphasized 
-(void)press1x1x1:(UIButton *)sender { 
    sender.alpha = 0; 
} 

と、彼らは小文字で始まるので、あなたの変数名を変更する必要があります。大文字はクラス名にのみ使用してください。

+0

これは動作しませんでした。実装したときにSIGBRTエラーが発生しました。 –

+0

いつSIGBRTを手に入れましたか?それが始まったとき、またはボタンをたたくとき? – Jaybit