设置导航控制器的代表?
问题描述:
我下面的指导,以创建自定义转换和他所做的就是创建一个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按钮。
如何将类/转换代码连接到导航控制器?
答
在故事板中单击导航控制器。将对象库中的NSObject添加到导航栏中。在视图顶部可以看到四个按钮(就像你在问题中所说的 - Nav Controller/First Responder/NSObject/Exit按钮)。右键单击第一个按钮。您将获得导航控制器操作列表。从Outlets下选择委托并拖动到NSObject。将NSObject连接到你的类。
你可以看到一个箭头标记在故事板上导航控制器的快照。单击该箭头标记,您将看到导航栏,然后右键单击该标记以获取委托。让我知道它是否工作.. – Janmenjaya
不知何故,我完全错过了,他已经拖入一个NSObject的顶部位,然后像你说的拖动委托。非常感谢! –