popViewController Анимированная анимация не работает
Я знаю, что это такой повторяющийся вопрос в SO, но я все еще не могу понять это. Анимация не работает, когда приложение переходит в фоновый режим, а затем возвращается обратно. При первом запуске приложения я могу получить анимацию push / pop между представлениями, но как только приложение переходит в фоновый режим, оно перестает анимироваться.
Я создал пользовательский класс контроллера навигации, расширяющий UINavigationController
и написал popViewControllerAnimated
метод в этом.
- (UIViewController *)popViewControllerAnimated:(BOOL)animated {
UIViewController* viewController = [super popViewControllerAnimated:animated];
UIViewController* nextViewControler = [[self viewControllers] lastObject];
[nextViewControler viewWillAppear:animated];
[viewController viewWillDisappear:animated];
return viewController;
}
Любая помощь приветствуется.
3 ответа
Это происходит, если где-то в вашем коде вы принудительно вызываете один из viewWillAppear
аналоги с YES
или же NO
вместо того, чтобы позволить iOS решить, или если вы не соответствуете вызовам [super viewWillAppear:animated]
с viewDidAppear
,
На моем конце это был пропущенный звонок [super viewDidAppear:animated]
в моем UITabBarController.
На самом деле это вызвало какое-то другое странное поведение, поэтому я рекомендую всегда звонить [super viewWill/Did*]
методы
Возможно, вы захотите просто использовать протокол UINavigationControllerDelegate, чтобы вызвать viewWillAppear/viewDidAppear. Для более подробной информации смотрите:
http://www.idev101.com/code/User_Interface/UINavigationController/viewWillAppear.html