带过渡的dismissModalViewController:从左到右 [英] dismissModalViewController with transition: left to right
问题描述
我使用了一个很好的方法来关闭我的模态视图控制器:
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.
由于该方法是非公开方法,苹果不会接受.如何在我的代码中编写这种动画(从左向右滑动,关闭模态视图,从右向左滑动以呈现模态视图)?
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) 为了呈现一个具有从右到左过渡的模态视图控制器,我编写了以下方法:
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屋!