我知道这是一个重复的问题,但我仍然无法弄明白。当应用程序转到后台然后重新启动时,动画无效。应用程序第一次启动时,我可以在视图之间获得推/动画动画,但是一旦应用程序转到后台,它就会停止动画制作。
我创建了一个自定义导航控制器类,扩展了UINavigationController
并在其中编写了popViewControllerAnimated
方法。
- (UIViewController *)popViewControllerAnimated:(BOOL)animated {
UIViewController* viewController = [super popViewControllerAnimated:animated];
UIViewController* nextViewControler = [[self viewControllers] lastObject];
[nextViewControler viewWillAppear:animated];
[viewController viewWillDisappear:animated];
return viewController;
}
感谢任何帮助。
答案 0 :(得分:6)
如果您的代码中的某个地方要么强制拨打viewWillAppear
YES
对应的NO
或[super viewWillAppear:animated]
,而不是让iOS决定,或者如果您的呼叫不匹配,则会发生这种情况viewDidAppear
与{{1}}。
答案 1 :(得分:4)
在我的结尾,它在我的UITabBarController中缺少调用[super viewDidAppear:animated]
。
它实际上产生了一些其他奇怪的行为,所以我建议总是调用[super viewWill/Did*]
方法
答案 2 :(得分:0)
您可能希望尝试仅使用UINavigationControllerDelegate协议来调用viewWillAppear / viewDidAppear。有关详细信息,请参阅:
http://www.idev101.com/code/User_Interface/UINavigationController/viewWillAppear.html