Как я могу узнать, загружен ли viewcontroller из-за push или из-за реконструкции представления после всплывающего окна на UINavigationController? - PullRequest
1 голос
/ 30 апреля 2011

Я использую UINavigationController с несколькими контроллерами представления.Один из контроллеров представления, который программно построен в loadview:, выполняет некоторые пользовательские анимации, чтобы выполнить переход от предыдущего контроллера представления.

Таким образом, эти анимации должны происходить только при нажатии viewcontroller, так как loadview вызывается только один раз при создании viewcontroller перед push, обычно все это прекрасно работает.

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

Я мог бы, вероятно, хранить некоторую информацию о состоянии или отправлять уведомления сам, чтобы узнать, вызывается ли loadview из-за pushViewController или popViewController, но мне было интересно, еслиесть какой-нибудь встроенный способ узнать, происходит ли loadView, потому что представление создается впервые или потому что оно было предварительно очищено?

1 Ответ

1 голос
/ 30 апреля 2011

Нет, у вас нет такого встроенного метода в UIViewController, но вы можете положиться на - (void) viewDidUnload, чтобы знать, что ваше представление не должно отображать анимацию в viewDidLoad. Так что да, это значит хранить некоторую информацию о состоянии.

...