er .. первый.
Создайте новый класс с именем Animator и наследуйте NSObject и UIViewControllerAnimatedTransitioning.
Затем добавить свойства к классу:
let animationDuration = 2.0
var operation: UINavigationControllerOperation = .Push
Затем реализовать две функции:
func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
return animationDuration
}
func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
}
Затем в mainViewController, расширение UINavigationCOntrollerDelegate, в viewDidLoad() реализации делегата = себя и объявить:
let transition = Animator()
В добавочный номер добавить этот функционал ион:
func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
transition.operation = operation
return transition
}
В Animator реализовано ваше UIViewControllerContextTransitioning.
weak var storedContext: UIViewControllerContextTransitioning?
затем в функции animateTranstion:
storedContext = transitionContext
let fromVC = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey) as! MasterViewController
let toVC = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey) as! DetailViewController
transitionContext.containerView()?.addSubview(toVC.view)
наконец, создать свой собственный аниматора. :)