我正在尝试在两个uiviewcontrollers之间转换期间创建自定义动画。当我尝试弹出一个视图控制器时,我在nil
中获得了[transitionContext containerView]
个对象。这是我自定义转换类的代码
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
UIViewController * toViewController = (UIViewController *)[transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIViewController *fromViewController = (UIViewController *)[transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIView *containerView = [transitionContext containerView];//returns nil
[containerView addSubview:toViewController.view];
[fromViewController.view removeFromSuperview];
[transitionContext completeTransition:YES];
}
我正在使用类似的代码,同时推动视图控制器并使其完美运行。但在流行期间它制造麻烦。
答案 0 :(得分:1)
我自己也遇到了这个问题,看起来您需要将fromViewController
的视图添加到containerView
。
正如transitionContext
的{{1}}方法的文档所示:
动画师对象负责添加所呈现的视图控制器的视图......
目前尚不清楚为什么,但未将containerView
的视图(“呈现的视图控制器”视图)添加到fromViewController
会导致第一次工作转换,但{{1} }} containerView
关于后续过渡。