У меня проблемы с setNeedsDisplay. У меня есть UIView с множеством вложенных UIViews, созданных в Inteface Builder. У меня также есть кнопка с IBAction. В этом IBAction я хочу перерисовать / перезагрузить все UIViews (или все элементы UIE, такие как UILabel, UIWebView и т. Д.)
Я делаю это, что не работает для меня, не знаю почему ..:
//redraw the UIViews
[self.view_card_0 setNeedsDisplay];
[self.view_card_1 setNeedsDisplay];
[self.view_card_stapel setNeedsDisplay];
//other UI Elements
[self.webView_0 setNeedsDisplay];
[self.webView_1 setNeedsDisplay];
[self.webView_stapel setNeedsDisplay];
[self.lblCardTitle_0 setNeedsDisplay];
[self.lblCardTitle_1 setNeedsDisplay];
[self.lblCardTitle_stapel setNeedsDisplay];
[self.img_card_0 setNeedsDisplay];
[self.img_card_1 setNeedsDisplay];
[self.img_card_stapel setNeedsDisplay];
Что делать для перерисовки / перезагрузки / обновления всех UIElements / UIViews и Subviews?
РЕДАКТИРОВАТЬ 1:
Как загрузить вид:
detailViewController = [[DetailViewController alloc]
initWithNibName:@"DetailViewController_iPad" bundle:[NSBundle mainBundle]];
Контроллер detailview не имеет контроллера представления, только uiviews, здесь иерархия:
- UIView
- UIViewContainer
--- UIView0
--- UIView1
--- UIViewStapel
Что я ожидаю сделать:
* Я не хочу сбрасывать UIView, я хочу изменить фон и их содержание. *
У меня в подробном обзоре много подпредставлений (uiviews), см. Иерархию выше. Я отображаю контент в UIViews, контент поступает из coreData.
View1 содержит текущую строку coreData.
View0 содержит предыдущую строку coreData.
ViewStapel содержит следующую строку coreData.
С IBAction я хочу перебирать строки coreData, отображать следующую строку в текущем, если вызывается действие ... и так далее.
В журнале данные изменяются, но не отображаются в UIViews. Из-за этого мне нужно перерисовать или перезагрузить или что-то вроде этого, чтобы отобразить текущие данные.
РЕДАКТИРОВАТЬ 2: решено
Я поместил код в новый метод, и вызов этого метода решил мою проблему.