У меня есть установка UINavigationController, и я ожидаю использовать пользовательскую анимацию для pop/push-просмотров с ней. Я использовал пользовательские переходы прежде, чем без проблем, но в этом случае я нахожу нулевые значения в своих «от» и «до» UIViewControllers.Внутри UIViewControllerAnimatedTransitioning delegate, переходContext.fromViewController is nil
Моя установка очень похожа на эту SO Post
Пользовательские DataEntryViewController
class DataEntryViewController : UIViewController, DataEntryViewDelegate, UINavigationControllerDelegate {
func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
let animator = DataEntryTransitionAnimator()
animator.duration = 2
return animator
}
}
Пользовательские BaseTransitionAnimator
class BaseTransitionAnimator : NSObject, UIViewControllerAnimatedTransitioning {
var duration : NSTimeInterval = 0.5 // default transition time of 1/2 second
var appearing : Bool = true // is the animation appearing (or disappearing)
func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
return duration
}
func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
assert(true, "animateTransition MUST be implemented by child class")
}
}
подклассы TransitionAnimator
class DataEntryTransitionAnimator : BaseTransitionAnimator {
override func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
let containerView = transitionContext.containerView()
let fromVC = transitionContext.viewControllerForKey(UITransitionContextFromViewKey) as! DataEntryViewController
let toVC = transitionContext.viewControllerForKey(UITransitionContextToViewKey) as! DataEntryViewController
let duration = transitionDuration(transitionContext)
// do fancy animations
}
}
Использование выше, как fromVC и toVC равны нулю
Как это возможно, что transitionContext не имеет действительных указателей на «до» и «от» UIViewControllers?
: Facepalm: Ха, спасибо. Я отлаживал командную строку И, глядя в окно отладки, поклялся, что он показал ноль для венчурных капиталистов, но, вероятно, из-за опций это просто выглядело забавно. Все еще привыкаешь к Свифт. – MobileVet
Не беспокойтесь! Простая опечатка, легко пропустить. – Mackarous
большое спасибо, у меня была такая же проблема xD – coolcool1994