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

Другие вопросы по тегам