- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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/
我是一名优秀的程序员,十分优秀!