2011-01-26 6 views
0

У меня есть корневой ViewController (RootViewController), который вызывает pushViewController для отображения другого ViewController (DetailViewController). В DetailViewController я делаю изменения, которые влияют на содержимое, отображаемое в корневом ViewController. Поэтому мне нужно перерисовать представление в RootViewController после удаления элемента DetailViewController с помощью popViewControllerAnimated.Refreshing ViewController после popViewControllerAnimated

Проблема в том, что setNeedsDisplay не работает в этом сценарии. В методе viewWillAppear из RootViewController, я называю:

[self.view setNeedsDisplay] 

Однако содержание зрения RootViewController не обновляется. Поэтому мне интересно, есть ли что-то в навигационных контроллерах, которые предотвращают работу setNeedsDisplay.

Единственный способ решения проблемы я мог бы найти, что следующий код, который заставляет вызов viewDidLoad, который перерисовывает все представление

self.view = nil; 

ответ

2

Вы можете обновить свой вид в viewWillAppear вместо viewDidLoad. Вам не нужно вызывать setNeedsDisplay.

+1

Но мне интересно, почему в viewWillAppear, почему [self.view setNeedsDisplay] не работает. Теоретически это должно заставлять представление перерисовывать себя. – user542428

Смежные вопросы