I\'ve created custom transitions between view controllers using the following protocols:
UIViewControllerAnimatedTransitioning and UIViewControll
If your transition is both custom and interactive, then you can get some mileage out of UIViewControllerTransitionCoordinator.
see Here.
For example, in viewWillAppear of the view controller that is the "To" (target) vc:
[[self transitionCoordinator] animateAlongsideTransition:^(id context) {
// mess around with stuff here
} completion:^(id context) {
// all done now
}];