এই কোডটি আইওএস 6 এবং iOS7 এর অধীনে আইফোনটিতে দুর্দান্ত কাজ করে:
presentedVC.view.backgroundColor = YOUR_COLOR; // can be with 'alpha'
presentingVC.modalPresentationStyle = UIModalPresentationCurrentContext;
[presentingVC presentViewController:presentedVC animated:YES completion:NULL];
এই ক্ষেত্রে আপনি স্লাইড-অন অ্যানিমেশনটি মিস করেন। অ্যানিমেশন ধরে রাখতে আপনি এখনও নিম্নলিখিত "অ-মার্জিত" এক্সটেনশনটি ব্যবহার করতে পারেন:
[presentingVC presentViewController:presentedVC animated:YES completion:^{
[presentedVC dismissViewControllerAnimated:NO completion:^{
presentingVC.modalPresentationStyle = UIModalPresentationCurrentContext;
[presentingVC presentViewController:presentedVC animated:NO completion:NULL];
}];
}];
যদি আমাদের উপস্থাপনাটি ইউআইএনএভিগেশন কন্ট্রোলার বা ইউআইটিববারকন্ট্রোলারের ভিতরে থাকে তবে আপনাকে সেই নিয়ন্ত্রণকারীদের সাথে উপস্থাপনাভিসি হিসাবে পরিচালনা করতে হবে।
আরও, iOS7 এ আপনি কাস্টম ট্রানজিশন অ্যানিমেশন প্রয়োগ করে UIViewControllerTransitioningDelegate
প্রোটোকল প্রয়োগ করতে পারেন । অবশ্যই, এই ক্ষেত্রে আপনি স্বচ্ছ পটভূমি পেতে পারেন
@interface ModalViewController : UIViewController <UIViewControllerTransitioningDelegate>
প্রথমে, উপস্থাপনের আগে আপনাকে সেট করতে হবে modalPresentationStyle
modalViewController.modalPresentationStyle = UIModalPresentationCustom;
তারপরে আপনাকে দুটি প্রোটোকল পদ্ধতি প্রয়োগ করতে হবে
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source
{
CustomAnimatedTransitioning *transitioning = [CustomAnimatedTransitioning new];
transitioning.presenting = YES;
return transitioning;
}
- (id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed
{
CustomAnimatedTransitioning * transitioning = [CustomAnimatedTransitioning new];
transitioning.presenting = NO;
return transitioning;
}
শেষ জিনিসটি CustomAnimatedTransitioning
ক্লাসে আপনার কাস্টম স্থানান্তরকে সংজ্ঞায়িত করা thing
@interface CustomAnimatedTransitioning : NSObject <UIViewControllerAnimatedTransitioning>
@property (nonatomic) BOOL presenting;
@end
@implementation CurrentContextTransitionAnimator
- (NSTimeInterval)transitionDuration:(id <UIViewControllerContextTransitioning>)transitionContext
{
return 0.25;
}
- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext
{
UIViewController *fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
if (self.presenting) {
// custom presenting animation
}
else {
// custom dismissing animation
}
}