Я следую руководство для создания пользовательских переходов, и он делает это создает NSObject, который выглядит как:Настройка делегата контроллера навигации?
class CustomNavigationAnimationController: NSObject, UINavigationControllerDelegate {
func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
if fromVC.isKindOfClass(VC2) {
return showTrans()
} else if fromVC.isKindOfClass(VC3){
return dismissTrans()
} else {
return nil
}
}
}
то в другом файле он делает два класса с функциями showTrans/dismissTrans и классы выглядеть следующим образом:
class showTrans: NSObject, UIViewControllerAnimatedTransitioning {
func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
let containerView = transitionContext.containerView()
let fromVC = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)!
let toVC = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)!
containerView?.addSubview(fromVC.view)
containerView?.addSubview(toVC.view)
toVC.view.alpha = 0
UIView.animateWithDuration(transitionDuration(transitionContext), delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: [], animations: {
toVC.view.alpha = 1
}) { (finished: Bool) in
transitionContext.completeTransition(true)
}
}
func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
return 0.7
}
в самом начале видео он переходит в раскадровке и нажимает на его навигации контроллера и есть 4 кнопки вверх в верхней части для навигации контроллера/Первый ответчик/выход/делегатом. Он нажимает на кнопку делегирования и устанавливает делегата панели навигации в класс CustomNavigationAnimationController. Когда я нажимаю на контроллер навигации, я получаю только кнопки Nav Controller/First Responder/Exit вверху.
Как подключить классы/код перехода к контроллеру навигации?
Вы можете увидеть знак со стрелкой в контроллере навигации в раскадровку. щелкните стрелку, вы увидите панель навигации, затем щелкните ее правой кнопкой мыши, чтобы получить делегат. Дайте мне знать, если это сработает. – Janmenjaya
Как-то я полностью пропустил, что он перетащил NSObject в верхний бит, а затем перетащил делегата, как вы сказали. Большое спасибо! –