2010-02-28 1 views
0

Я создал несколько элементов пользовательского интерфейса в методе viewDidLoad. Я хочу изменить цвет конкретного UIButton из одного из моих методов. Как я могу это сделать? Я пробовал нечто похожее на: self.view.myUIButton.backgroundColor = myUIColor Это не работает. Что мне не хватает?Доступ к свойствам программно созданного UIButton из метода

ответ

0

Бесполезно, вы устанавливаете кнопки в качестве свойств контроллера вида, он теряет локально привязанные ссылки к ним при завершении метода -viewDidLoad.

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

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

В большинстве случаев вы хотите что-то вроде:

UIButton *button1; 
UIButton *button2; 
@property(nonatomic, retain) UIButton *button1; 
@property(nonatomic, retain) UIButton *button2; 

затем в viewDidLoad вы будете использовать:

self.button1 = [[UIButton Alloc] initWithFrame: aRect];

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

+0

RE: теги, вы можете просто использовать viewWithTag: вместо interating в подвидах – jamesmoschou