2016-09-09 6 views
0

Я следую руководство для создания пользовательских переходов, и он делает это создает 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 вверху.

Как подключить классы/код перехода к контроллеру навигации?

+0

Вы можете увидеть знак со стрелкой в ​​контроллере навигации в раскадровку. щелкните стрелку, вы увидите панель навигации, затем щелкните ее правой кнопкой мыши, чтобы получить делегат. Дайте мне знать, если это сработает. – Janmenjaya

+0

Как-то я полностью пропустил, что он перетащил NSObject в верхний бит, а затем перетащил делегата, как вы сказали. Большое спасибо! –

ответ

1

В раскадровке нажмите «Контроллер навигации». Добавьте NSObject из библиотеки объектов в панель навигации. В верхней части экрана отображаются четыре кнопки (как вы сказали в вопросе - кнопки Nav Controller/First Responder/NSObject/Exit). Щелкните правой кнопкой мыши на первой кнопке. вы получите списки действий контроллера навигации. Оттуда под Выходы выберите делегат и перетащите в NSObject. Подключите NSObject к вашему классу.

1

Вы можете увидеть стрелку в контроллере навигации в доске объявлений. щелкните стрелку, вы увидите панель навигации, затем щелкните ее правой кнопкой мыши, чтобы получить делегат.

Вот снимок, чтобы сделать его легким для вас

enter image description here

Смежные вопросы