Локальные переменные в viewdidload - PullRequest
0 голосов
/ 09 февраля 2012

В настоящее время я пытаюсь создать программу, когда создаю кнопку, и когда я нажимаю на нее, ее альфа обнуляется.Это может показаться простым, но это сводит меня с ума.

Видите ли, в моем последнем проекте я делаю много кнопок, поэтому мне нужно сделать это все в коде и без использования раскадровки .

Вот то, что я имею до сих пор

//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'"

Я знаю, что это проблема локализации переменной, и что переменная Button1x1x1локализован в viewdidload, но я понятия не имею, как решить эту проблему.Сделать глобальную переменную?Пожалуйста, помните, что я не могу использовать раскадровку.

Дополнительная информация: У меня нет других ссылок на Button1x1x1 в моем коде, где-либо.

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

Вы можете использовать селектор, который передает отправителю в качестве аргумента.

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

и вам следует изменить имена переменных, чтобы они начинались со строчной буквы.Заглавные буквы должны использоваться только для названий классов.

0 голосов
/ 09 февраля 2012

Вам не нужно объявлять глобальную переменную, просто объявите ее как переменную экземпляра следующим образом:

@interface MediumBoard : UIViewController {
@private
  UIButton *myButton_; // Or Button1x1x1, whatever you want to call it
}
@property (weak, nonatomic) IBOutlet UIScrollView *ScrollMedium;
@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...