UINavigationController - ошибка поп-анимации
У меня проблемы с анимацией UINavigationController.
У меня есть мастер-детальный вид. На вид одна кнопка, открывающая подробный вид.
Детальный вид открывается правильно, с нормальной анимацией заголовка и с перемещением контента. Но когда я нажимаю кнопку "Назад", заголовок корректно анимируется, и содержание деталей исчезает мгновенно, а не анимируется.
Вот ссылка на демонстрацию проблемы: https://www.youtube.com/watch?v=C4UApAhEhx8
Для открытия я использую стандарт
AboutViewController *aboutViewController = [[AboutViewController alloc] initWithNibName:@"AboutViewController_iPhone" bundle:nil];
[self.navigationController pushViewController:aboutViewController animated:YES];
Я попытался открыть представление с кодом, а не с кнопкой "Назад", но есть та же проблема.
Ответы
Ответ 1
Это происходит, если где-то в вашем коде вы принудительно вызываете один из viewWillAppear
-компонов с YES
или NO
вместо того, чтобы разрешать iOS, или если вы не отвечаете на вызовы [super viewWillAppear:animated]
с помощью viewDidAppear
.
Ответ 2
У меня была та же проблема, и ответ Miha указал мне в правильном направлении. В моем случае у меня был пользовательский UITabBarController, в котором я делал некоторую обработку в viewDidAppear. Проблема была вызвана отсутствием [super viewDidAppear:animated];
в моем представленииDidAppear.
Ответ 3
Пожалуйста, используйте код для возврата к предыдущему окну:
[self.navigationController pushViewController animated: YES];
Я думаю, это поможет вам.
Ответ 4
У меня есть тот же самый вопрос, что и у вас, и моя проблема заключается в том, что я установил выбранный указатель на панели вкладок в режиме viewwillappear некоторого контроллера вида, что вызывает некоторую ошибку на панели навигации.
Поэтому я просто перемещаю код в viewdidappear, это исправляет ошибки.
Надеюсь, когда-нибудь вы это увидите, хотя вы, возможно, уже решите это. Поэтому надеюсь, что это поможет другим.
Ответ 5
Пожалуйста, используйте код для возврата к предыдущему окну:
[self.navigationController popViewController animated:YES];