2016-09-09 30 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按钮)。右键单击第一个按钮。您将获得导航控制器操作列表。从Outlets下选择委托并拖动到NSObject。将NSObject连接到你的类。

1

您可以在故事板中的导航控制器中看到一个箭头标记。单击该箭头标记,您将看到导航栏,然后右键单击该标记以获取委托。

这里是很容易让你

enter image description here

相关问题