popViewControllerAnimated动画无效

时间:2012-08-06 19:18:57

标签: objective-c ios5 uinavigationcontroller popviewcontrolleranimated

我知道这是一个重复的问题,但我仍然无法弄明白。当应用程序转到后台然后重新启动时,动画无效。应用程序第一次启动时,我可以在视图之间获得推/动画动画,但是一旦应用程序转到后台,它就会停止动画制作。

我创建了一个自定义导航控制器类,扩展了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 个答案:

答案 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