Tôi có một vấn đề và tôi đã mô tả nó bên dưới.
Tôi đang sử dụng UIViewControllerContextTransitioning
cho các chuyển đổi tùy chỉnh.
Tôi có 2 bộ điều khiển chế độ xem, bộ điều khiển chế độ xem thứ nhất và bộ điều khiển chế độ xem thứ hai.
Bây giờ tôi muốn thêm bộ điều khiển chế độ xem thứ hai trên bộ điều khiển chế độ xem thứ nhất với một hình ảnh động. Tôi đã đạt được nó, bây giờ bộ điều khiển chế độ xem thứ hai trong suốt, vì vậy chúng ta có thể thấy bộ điều khiển chế độ xem thứ nhất bên dưới bộ điều khiển chế độ xem thứ hai.
Nhưng tôi không thể nhìn thấy bộ điều khiển chế độ xem thứ nhất và tôi chỉ có thể thấy màn hình đen bên dưới bộ điều khiển chế độ xem thứ hai.
-(void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext{
self.transitionContext = transitionContext;
if(self.isPresenting){
[self executePresentationAnimation:transitionContext];
}
else{
[self executeDismissalAnimation:transitionContext];
}
}
-(void)executePresentationAnimation:(id<UIViewControllerContextTransitioning>)transitionContext{
UIView* inView = [transitionContext containerView];
UIViewController* toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIViewController* fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
CGRect offScreenFrame = inView.frame;
offScreenFrame.origin.y = inView.frame.size.height;
toViewController.view.frame = offScreenFrame;
toViewController.view.backgroundColor = [UIColor clearColor];
fromViewController.view.backgroundColor = [UIColor clearColor];
inView.backgroundColor = [UIColor clearColor];
[inView insertSubview:toViewController.view aboveSubview:fromViewController.view];
// [inView addSubview:toViewController.view];
CFTimeInterval duration = self.presentationDuration;
CFTimeInterval halfDuration = duration/2;
CATransform3D t1 = [self firstTransform];
CATransform3D t2 = [self secondTransformWithView:fromViewController.view];
[UIView animateKeyframesWithDuration:halfDuration delay:0.0 options:UIViewKeyframeAnimationOptionCalculationModeLinear animations:^{
[UIView addKeyframeWithRelativeStartTime:0.0f relativeDuration:0.5f animations:^{
fromViewController.view.layer.transform = t1;
}];
[UIView addKeyframeWithRelativeStartTime:0.5f relativeDuration:0.5f animations:^{
fromViewController.view.layer.transform = t2;
}];
} completion:^(BOOL finished) {
}];
[UIView animateWithDuration:duration delay:(halfDuration - (0.3*halfDuration)) usingSpringWithDamping:0.7f initialSpringVelocity:6.0f options:UIViewAnimationOptionCurveEaseIn animations:^{
toViewController.view.frame = inView.frame;
} completion:^(BOOL finished) {
[self.transitionContext completeTransition:YES];
}];
}
Khi [self.transitionContext completeTransition:YES];
được gọi, đột nhiên bộ điều khiển chế độ xem thứ nhất biến mất và màn hình đen hiển thị bên dưới bộ điều khiển chế độ xem thứ hai.
Có ai có ý tưởng? Cảm ơn.