【发布时间】:2014-10-27 23:52:18
【问题描述】:
我有一个使用 UINavigationControllerDelegate 的带有自定义导航推送转换的视图控制器。当您启动动画、按下后退按钮等时,一切都会完美运行。
但是,如果您将视图控制器压入堆栈,将应用程序置于后台,返回,然后按回,则不会调用委托方法 animationControllerForOperation。在调试过程中,我已经验证当我们将应用程序返回到前台时 self.navigationController.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];
}
【问题讨论】:
标签: ios objective-c uinavigationcontroller uiviewanimationtransition