dismissModalViewController过渡:从左到​​右 [英] dismissModalViewController with transition: left to right

查看:170
本文介绍了dismissModalViewController过渡:从左到​​右的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是用一个很好的方法来打发我的模态视图控制器:

I was using a nice method to dismiss my modal view controller:

[self dismissModalViewControllerWithTransition:2];

,这使得滑动过渡从左到右,如导航控制器执行弹出的图。

which makes a slide transition from left to right, like a navigation controller does to pop a view.

由于这种方法是一种非公开的方式,苹果是不会接受的。如何我在code这种动画编程(滑动由左到右,解雇模态视图,右滑动至左侧,以present模态的视图)?

As this method is a non-public method, apple will not accept it. How can I program this kind of animation in my code (slide from left to right, to dismiss a modal view, and slide from right to left to present a modal view) ?

在此先感谢

推荐答案

我已经接受了来自Safecase的答案,但我想在这里发布我的最终解决方案:

I have accepted the answer from Safecase, but I would like to publish my final solution here:

1)present一个从右到左的过渡我写了下面的方法一个模式视图控制器:

1) To present a modal view controller with a from right to left transition I have written following method:

-(void) presentModalView:(UIViewController *)controller {
    CATransition *transition = [CATransition animation];
    transition.duration = 0.35;
    transition.timingFunction =
    [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    transition.type = kCATransitionMoveIn;
    transition.subtype = kCATransitionFromRight;

    // NSLog(@"%s: self.view.window=%@", _func_, self.view.window);
    UIView *containerView = self.view.window;
    [containerView.layer addAnimation:transition forKey:nil];
    [self presentModalViewController:controller animated:NO];
}

2)驳回与幻灯片过渡模态的视图从左到右:

2) To dismiss a modal view with an slide transition left to right:

-(void) dismissMe {
    CATransition *transition = [CATransition animation];
    transition.duration = 0.35;
    transition.timingFunction =
    [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    transition.type = kCATransitionMoveIn;
    transition.subtype = kCATransitionFromLeft;

    // NSLog(@"%s: controller.view.window=%@", _func_, controller.view.window);
    UIView *containerView = self.view.window;
    [containerView.layer addAnimation:transition forKey:nil];

    [self dismissModalViewControllerAnimated:NO];
}

谢谢你们!

这篇关于dismissModalViewController过渡:从左到​​右的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆