gpt4 book ai didi

ios - 应用程序进入后台后未调用 animationController For Operation

转载 作者:行者123 更新时间:2023-11-29 12:35:04 24 4
gpt4 key购买 nike

我有一个 View Controller ,带有使用 UINavigationControllerDelegate 的自定义导航推送转换。当您启动动画、按下后退按钮等时,一切都完美无缺。

但是,如果您将 viewcontroller 压入堆栈,将应用置于后台,返回,然后按返回,委托(delegate)方法 animationControllerForOperation 不会按应有的方式调用。在调试期间,我已验证当我们将应用程序返回到前台时,self.navigationController.delegate 仍然正确设置,但永远不会命中委托(delegate)回调。有什么想法吗?

 //presenting vc
- (id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController
animationControllerForOperation:(UINavigationControllerOperation)operation
fromViewController:(UIViewController*)fromVC
toViewController:(UIViewController*)toVC
{
if (operation == UINavigationControllerOperationPush) {
_animationObject = [LVDashboardExplainerAnimation new];
_animationObject.presenting = YES;
return _animationObject;
} else if (operation == UINavigationControllerOperationPop) {
_animationObject.presenting = NO;
return _animationObject;
}
return nil;
}

//other VC
- (void)headerTapped {
self.navigationController.delegate = _navigationDelegate; //correct object
[self.navigationController popViewControllerAnimated:YES];
}

最佳答案

问题源于当应用程序从后台返回时手动调用 viewWillAppear:animated。通过调用它,导航委托(delegate)将调用 willShowViewController:animated: 但不会调用 navigationController:animationControllerForOperation: 或 didShowViewController:animated:

出于某种原因,强行调用 viewWillAppear 会导致整个事件中断。即使我们考虑到这一点并将导航委托(delegate)设置为 nil,然后返回正确的对象,该功能也无法正常工作。我猜这是 SDK 中的错误,但现在我们删除了对 viewWillAppear 的强制调用。

关于ios - 应用程序进入后台后未调用 animationController For Operation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26598784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com