私はビューコントローラFromViewController
を持っていて、これをカスタムトランジションでToViewController
として表示します。私はUIViewControllerAnimatedTransitioning
をto-とfrom-遷移の両方に実装しており、ToViewController
を表示したり却下したりするとうまく動作します。UINavigationController内からのカスタムトランジションでUIViewControllerを閉じるときの黒い画面
FromViewController
がUINavigationController
に含まれている場合は、ToViewController
を却下すると黒い画面が表示されます。
これは却下UIViewControllerAnimatedTransitioning
からのコードです:
- (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];
// My animations go here
// In the animation completion block I call:
[transitionContext completeTransition:!transitionContext.transitionWasCancelled]; // this is when my screen goes black
}
私はアプリを検査して、UINavigationController
もFromViewController
でもないが、解任後ビュー階層にあるようです。