2012-02-08 117 views
0

我正在嘗試創建一個程序,當我創建一個按鈕,並且當我點擊它時,它的alpha變爲零。它可能很簡單,但它使我瘋狂。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]; 
} 

Up在到現在爲止它工作正常。它創建按鈕並將其顯示在我的屏幕上。 然而當我嘗試實現這個

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

它給我的錯誤「未聲明的標識符的使用‘Button1x1x1’」

我知道它的一個變量定位問題,且變量Button1x1x1在viewDidLoad中本地化,但我不知道如何解決這個問題。我是否使其成爲全局變量?請記住我不能使用故事板。

附加信息:我在我的代碼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錯誤。 – 2012-02-08 23:24:03

1

你可以使用通過發件人作爲參數選擇。

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

,所以他們開始以小寫字母,你應該改變你的變量名。大寫字母只能用於類名。

+0

這不起作用,當我實現它時,我得到一個SIGBRT錯誤。 – 2012-02-08 23:23:52

+0

你什麼時候得到SIGBRT?當它開始或當你按下按鈕? – Jaybit 2012-02-09 00:00:43