2016-02-10 2 views
1

Здесь я добавляю представление от xib, когда вы нажимаете кнопку меню, которая находится в правой панели навигации, моя проблема заключается в том, что это представление идет слева направо, но Я хочу, чтобы это исходило справа налево.Как анимировать справа при добавлении xib-файла в ViewController

UIView.animateWithDuration(0.3, animations: {() -> Void in  
navController.navigationBar.frame = CGRectMake(-nibView.frame.width, 20, 
navController.navigationBar.frame.width, 
navController.navigationBar.frame.height)   
nibView.frame = CGRectMake(viewSize.frame.width - nibView.frame.width , 0, 
viewSize.frame.width, viewSize.frame.height)      
viewSize.addSubview(nibView) 
}) 

ответ

0

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) 

наконец, создать свой собственный аниматора. :)