Skip to content

Instantly share code, notes, and snippets.

@seivan
Created February 4, 2014 19:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save seivan/8810423 to your computer and use it in GitHub Desktop.
Save seivan/8810423 to your computer and use it in GitHub Desktop.
self.navigationController.transitioningDelegate = self;
[self SH_setAnimationDuration:0.5 withPreparedTransitionBlock:^(UIView *containerView, UIViewController *fromVC, UIViewController *toVC, NSTimeInterval duration, id<SHViewControllerAnimatedTransitioning> transitionObject, SHTransitionAnimationCompletionBlock transitionDidComplete) {
if (transitionObject.isReversed) {
toVC.view.layer.affineTransform = CGAffineTransformMakeTranslation(-CGRectGetWidth(toVC.view.frame), 0);
}
else {
toVC.view.layer.affineTransform = CGAffineTransformMakeTranslation(CGRectGetWidth(toVC.view.frame), 0);
}
[UIView animateWithDuration:duration delay:0 options:kNilOptions animations:^{
toVC.view.layer.affineTransform = CGAffineTransformIdentity;
if(transitionObject.isReversed) {
CGAffineTransform t = CGAffineTransformIdentity;
t = CGAffineTransformMakeTranslation(CGRectGetWidth(fromVC.view.frame), 0);
fromVC.view.layer.affineTransform = t;
}
else {
CGAffineTransform t = CGAffineTransformIdentity;
t = CGAffineTransformMakeTranslation(-CGRectGetWidth(fromVC.view.frame), 0);
fromVC.view.layer.affineTransform = t;
}
} completion:^(BOOL finished) {
toVC.view.layer.affineTransform = CGAffineTransformIdentity;
fromVC.view.layer.affineTransform = CGAffineTransformIdentity;
// [toVC.view removeFromSuperview];
// [fromVC.view removeFromSuperview];
transitionDidComplete();
}];
}];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment