我知道这是SO中重复的问题,但我仍然无法弄清楚。当应用程序进入后台然后重新启动时,动画不起作用。应用程序第一次启动时,我能够在视图之间获取推送/弹出动画,但是一旦应用程序进入后台,它就不再动画化。
我创建了一个扩展UINavigationController
的自定义导航控制器类,并在其中编写了 popViewControllerAnimated
方法。
- (UIViewController *)popViewControllerAnimated:(BOOL)animated {
UIViewController* viewController = [super popViewControllerAnimated:animated];
UIViewController* nextViewControler = [[self viewControllers] lastObject];
[nextViewControler viewWillAppear:animated];
[viewController viewWillDisappear:animated];
return viewController;
}
任何帮助,不胜感激。
如果您在代码中的某个地方强制调用具有 YES
或 NO
的viewWillAppear
对应项之一,而不是让 iOS 决定,或者您对[super viewWillAppear:animated]
的调用与 viewDidAppear
不匹配,就会发生这种情况。
在我的UITabBarController中缺少调用[super viewDidAppear:animated]
。
它实际上产生了一些其他奇怪的行为,所以我建议总是调用[super viewWill/Did*]
方法
您可能只想尝试使用 UINavigationControllerDelegate 协议来调用 viewWillAppear/viewDidSeem 。 有关更多详细信息,请参阅:
http://www.idev101.com/code/User_Interface/UINavigationController/viewWillAppear.html