4

私はビューコントローラFromViewControllerを持っていて、これをカスタムトランジションでToViewControllerとして表示します。私はUIViewControllerAnimatedTransitioningをto-とfrom-遷移の両方に実装しており、ToViewControllerを表示したり却下したりするとうまく動作します。UINavigationController内からのカスタムトランジションでUIViewControllerを閉じるときの黒い画面

FromViewControllerUINavigationControllerに含まれている場合は、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 
} 

私はアプリを検査して、UINavigationControllerFromViewControllerでもないが、解任後ビュー階層にあるようです。

答えて

2

私はそれを理解しました。代わりに

[self.containerView insertSubview:self.fromViewController.view belowSubview:self.toViewController.view]; 

をIナビゲーションコントローラからのビューを追加する必要が:私は遷移コンテキストコンテナビューにビューを追加したときに問題があった

[self.containerView insertSubview:navigationController.view belowSubview:self.toViewController.view]; 
関連する問題