Objective c popViewControllerAnimated动画不工作

Objective c popViewControllerAnimated动画不工作,objective-c,ios5,uinavigationcontroller,popviewcontrolleranimated,Objective C,Ios5,Uinavigationcontroller,Popviewcontrolleranimated,我知道这是一个重复性的问题,但我还是无法理解。当应用程序转到背景然后返回时,动画不起作用。应用程序第一次启动时,我能够在视图之间获得推送/弹出动画,但一旦应用程序进入背景,它将停止动画 我创建了一个自定义导航控制器类,扩展了UINavigationController,并在其中编写了popViewControllerAnimated方法 - (UIViewController *)popViewControllerAnimated:(BOOL)animated { UIViewContr

我知道这是一个重复性的问题,但我还是无法理解。当应用程序转到背景然后返回时,动画不起作用。应用程序第一次启动时,我能够在视图之间获得推送/弹出动画,但一旦应用程序进入背景,它将停止动画

我创建了一个自定义导航控制器类,扩展了
UINavigationController
,并在其中编写了
popViewControllerAnimated
方法

- (UIViewController *)popViewControllerAnimated:(BOOL)animated {
    UIViewController* viewController = [super popViewControllerAnimated:animated];    
    UIViewController* nextViewControler = [[self viewControllers] lastObject];
    [nextViewControler viewWillAppear:animated];    
    [viewController viewWillDisappear:animated];
    return viewController;
}

非常感谢您的帮助。

您可以尝试使用UINavigationControllerDelegate协议来调用viewwillbeen/viewdidebeen。有关更多详细信息,请参阅:


如果您在代码中的某个地方强制调用一个
视图,而不是让iOS决定,则会出现这种情况,或者如果您对
视图的调用不匹配,
视图将显示
对应的
YES
NO
,[super view willbeen:animated]
在我这边,我的UITabBarController中缺少调用
[超级视图显示:动画]


它实际上产生了一些其他奇怪的行为,因此我建议始终调用
[super viewWill/Did*]
方法

绝对不需要实现协议方法。从上面的代码中,您可以看到我已经在扩展导航控制器类的方法中调用viewwillappease/viewwilldefine。