Я работаю над устаревшим приложением и обнаружил, что мои методы view[Will/Did]Disappear не всегда срабатывают должным образом.
В случае, у меня есть (custom) UIViewController, установленный как rootViewController в AppDelegate. Этот rootViewController имеет UINavigationController, который имеет два контроллера отображения. Когда пользователь нажимает кнопку "домой", пользователь выходит из системы. Когда он позже вернется в приложение, приложение вызывает [UINavigationController popToRootViewControllerAnimated:YES], а затем отображает модальный UIViewController для входа.
Проблема заключается в следующем: когда я обычно нажимаю/нажимаю на UINavigationController, мой метод viewWillDisappear вызывается правильно. Но когда я использую метод popToRootViewControllerAnimated:, viewWillDisappear не вызывается ни на один из обработчиков viewControllers.
Поиск в Интернете имеет только две причины:
- Если вы используете UINavigationController в качестве подзаголовка, вы должны вызвать
view[Will/Did]Disappearсамостоятельно. - Не вызывать соответствующие супер методы
Ни одно из этих предложений не относится к моему приложению. И я понятия не имею, где искать. У кого-нибудь есть предложение о том, что было сделано неправильно в приложении?