| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- //
- // UINavigationController+Transition.m
- // CommonLibrary
- //
- // Created by Alexi on 3/18/14.
- // Copyright (c) 2014 Alexi. All rights reserved.
- //
- #import "UINavigationController+Transition.h"
- @implementation UINavigationController (Transition)
- - (CATransition *)pushAnimation
- {
- CATransition* transition = [CATransition animation];
- transition.duration = 0.3;
- transition.type = kCATransitionFade;
- transition.subtype = kCATransitionFromBottom;
- transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- transition.autoreverses = NO;
- return transition;
- }
- - (CATransition *)popAnimation
- {
- CATransition* transition = [CATransition animation];
- transition.duration = 0.3;
- transition.type = kCATransitionFade;
- transition.subtype = kCATransitionFromTop;
- transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- transition.autoreverses = NO;
- return transition;
- }
- - (void)pushViewController:(UIViewController *)viewController withAnimation:(void (^)(void))animation duration:(CGFloat)duration
- {
- if (animation)
- {
- [self pushViewController:viewController animated:NO];
- [UIView animateWithDuration:duration animations:^{
- animation();
- }];
- // [self.view.layer addAnimation:transition forKey:kCATransition];
- }
- else
- {
- [self pushViewController:viewController animated:YES];
- }
- }
- - (void)pushViewController:(UIViewController *)viewController withTransition:(CATransition *)transition
- {
- if (transition)
- {
- [self pushViewController:viewController animated:NO];
- [self.view.layer addAnimation:transition forKey:kCATransition];
- }
- else
- {
- [self pushViewController:viewController animated:YES];
- }
- }
- - (void)pushViewController:(UIViewController *)viewController withBackTitle:(NSString *)backTitle animated:(BOOL)animated
- {
- [self pushViewController:viewController animated:animated];
- }
- - (void)pushViewController:(UIViewController *)viewController withBackTitle:(NSString *)backTitle action:(FWVoidBlock)backAction animated:(BOOL)animated
- {
- [self pushViewController:viewController animated:animated];
- }
- - (UIViewController *)popViewControllerTransition:(CATransition *)transition
- {
- if (transition)
- {
- [self.view.layer addAnimation:transition forKey:kCATransition];
- return [self popViewControllerAnimated:NO];
- }
- else
- {
- return [self popViewControllerAnimated:YES];
- }
- }
- - (NSArray *)popToRootViewControllerTransition:(CATransition *)transition
- {
- if (transition)
- {
- [self.view.layer addAnimation:transition forKey:kCATransition];
- return [self popToRootViewControllerAnimated:NO];
- }
- else
- {
- return [self popToRootViewControllerAnimated:YES];
- }
- }
- - (NSArray *)popToViewController:(UIViewController *)viewController withTransition:(CATransition *)transition
- {
- if (transition)
- {
- [self.view.layer addAnimation:transition forKey:kCATransition];
- return [self popToViewController:viewController animated:NO];
- }
- else
- {
- return [self popToViewController:viewController animated:NO];
- }
- }
- @end
|