0

我知道这是 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;
}

任何帮助表示赞赏。

4

3 回答 3

6

如果您在代码中的某个地方强制调用其中一个viewWillAppear对应方,YES或者NO不让 iOS 决定,或者如果您不匹配对[super viewWillAppear:animated]with的调用,就会发生这种情况viewDidAppear

于 2013-04-11T09:39:34.547 回答
6

[super viewDidAppear:animated]在我的最后,它在我的 UITabBarController中丢失了调用。

它实际上产生了一些其他奇怪的行为,所以我建议总是调用[super viewWill/Did*]方法

于 2015-07-21T10:04:13.740 回答
0

您可能想尝试仅使用 UINavigationControllerDelegate 协议来调用 viewWillAppear/viewDidAppear。有关更多详细信息,请参阅:

http://www.idev101.com/code/User_Interface/UINavigationController/viewWillAppear.html

于 2012-08-07T03:45:38.517 回答