Как вызвать метод viewDidLoad при нажатии кнопки назад в UINavigationController? (iPhone / iPad) - PullRequest
5 голосов
/ 20 января 2012

Мне нужен способ вызова метода viewDidLoad, когда в UINavigationController нажата кнопка «назад». Например, если у меня есть такой поток:

Вид A -> Вид B -> Вид C

Мне нужно, чтобы, если я на View C и нажимал назад, вызывался метод View B viewDidLoad. Точно так же, если я на View B и нажимаю кнопку возврата, должен вызываться метод View A viewDidLoad.

Может кто-нибудь подсказать, как этого добиться?

Ответы [ 2 ]

10 голосов
/ 20 января 2012

Метод viewDidLoad вызывается, когда контроллер представления завершил загрузку и настройку контроллера представления, например загрузку файла NIB.Для ваших нужд вы должны переместить соответствующий код на viewWillAppear, который будет вызываться каждый раз, когда соответствующий контроллер представления становится видимым.Таким образом, для перехода A -> B -> C (backto)-> B метод viewWillAppear контроллера вида B будет вызван дважды.

0 голосов
/ 20 января 2012

Судя по вашему описанию, вам лучше будет использовать методы viewWillAppear или viewDidAppearviewDidLoad предназначен для вызова только один раз, если только представление не отбрасывается из-за предупреждения памяти.

...