আমার একটি সমস্যা হয়েছে এবং আমি এটি নীচে বর্ণনা করেছি।
আমি UIViewControllerContextTransitioning
কাস্টম স্থানান্তরের জন্য ব্যবহার করছি ।
আমার কাছে 2 টি ভিউ কন্ট্রোলার রয়েছে, প্রথম দেখার নিয়ামক এবং দ্বিতীয় দেখার নিয়ামক।
এখন আমি এনিমেশন সহ প্রথম ভিউ কন্ট্রোলারে দ্বিতীয় ভিউ কন্ট্রোলার যুক্ত করতে চাই। আমি এটি অর্জন করেছি, এখন দ্বিতীয় ভিউ কন্ট্রোলার স্বচ্ছ, সুতরাং আমরা দ্বিতীয় দর্শন নিয়ামকের নীচে প্রথম দৃশ্যের নিয়ামক দেখতে পারি।
তবে আমি প্রথম দেখার নিয়ামকটি দেখতে পাচ্ছি না এবং আমি দ্বিতীয় দেখার নিয়ামকের নীচে কেবল কালো পর্দা দেখতে পাচ্ছি।
-(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];
}];
}
যখন [self.transitionContext completeTransition:YES];
ডাকা হয়, হঠাৎ করে প্রথম ভিউ কন্ট্রোলার অদৃশ্য হয়ে যায় এবং দ্বিতীয় ভিউ নিয়ন্ত্রকের নীচে কালো পর্দা প্রদর্শিত হয়।
কারও কি ধারণা আছে? ধন্যবাদ।