I have a view controller FromViewController, and I want it to present ToViewControllerwith a custom transition. I implemented UIViewControllerAnimatedTransitioningfor both to and transitions, and it all works great when I submit and reject ToViewController.
However, if mine is FromViewControllercontained in UINavigationController, I just get a black screen when I reject ToViewController.
This is the code from UIViewControllerAnimatedTransitioningupon dismissal:
- (void)animateTransition:(nonnull id<UIViewControllerContextTransitioning>)transitionContext {
self.toViewController = (ToViewController *)
[transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UINavigationController *navigationController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
self.fromViewController = (FromViewController *)navigationController.topViewController;
self.containerView = transitionContext.containerView;
[self.containerView insertSubview:self.fromViewController.view belowSubview:self.toViewController.view];
[transitionContext completeTransition:!transitionContext.transitionWasCancelled];
}
I looked over the app, and it seems that neither of UINavigationControllerand FromViewControlleris not in a hierarchy of ideas after the dismissal.
source
share