Я создал несколько элементов пользовательского интерфейса в методе viewDidLoad. Я хочу изменить цвет конкретного UIButton из одного из моих методов. Как я могу это сделать? Я пробовал нечто похожее на: self.view.myUIButton.backgroundColor = myUIColor
Это не работает. Что мне не хватает?Доступ к свойствам программно созданного UIButton из метода
0
A
ответ
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
RE: теги, вы можете просто использовать viewWithTag: вместо interating в подвидах – jamesmoschou