2012-01-20 1 views
3

Мне нужен способ вызова метода viewDidLoad, когда кнопка «назад» нажата в UINavigationController. Так, например, если у меня есть поток, как так:Как вызвать метод viewDidLoad при нажатии кнопки возврата в UINavigationController? (iPhone/iPad)

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

мне нужно это так, что если я на View C и жму назад, View BviewDidLoad Следует называть метод. Точно так же, если я нахожусь на View B, и я нажимаю кнопку возврата View AviewDidLoad.

Пожалуйста, кто-нибудь может предложить, как этого достичь?

ответ

9

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

+0

'viewDidLoad' также будет вызываться, если у вас есть собственный пользовательский метод loadVOiew, т. Е. Вы не используете NIB. И если вы хотите, чтобы событие «после» больше напоминало «viewDidLoad», вы можете использовать 'viewDidAppear'. – smparkes

0

Из вашего описания это звучит так, как будто вам будет лучше обслуживаться с помощью методов viewWillAppear или viewDidAppear. viewDidLoad предназначен только для вызова один раз, если только представление не отбрасывается из-за предупреждения о памяти.

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