我正在通过向下一个视图控制器呈现自定义过渡动画来进行相当简单的设置。
从本质上讲,过渡会在屏幕上创建toView,然后将其从右侧滑过fromView,而fromView则以稍慢的速度从左侧滑出。取消过渡的过程与此相反。
我的问题是解雇了toView返回到fromView之后,当我再次触发segue时,toView在fromView下方而不是上方滑动。在第一次过渡时不会发生这种情况,但是在之后的每个人中都会发生。
我无法终生弄清楚它为什么这样做,更不用说如何解决它了。任何帮助都会很棒。
选择代码:
let storyboard = UIStoryboard(name: kOnboardingSignupStoryboard, bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: kOnboardingErrorIdentifier) as! OnboardingErrorViewController
vc.transitioningDelegate = self
vc.errorMessage = kErrorIncorrectPin
self.present(vc, animated: true, completion: nil)
关闭代码:
dismiss(animated: true, completion: nil)
转换扩展名:
extension OnboardingErrorViewController: UIViewControllerTransitioningDelegate {
func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return FromRightDeck()
}
func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return DismissFromRightDeck()
}
答案 0 :(得分:0)
好,所以我在深入研究动画代码后设法解决了它。最初,我认为这与它没有任何关系,因为它在第一次使用动画以及每次使用动画时都可以正常工作。但是,我在测试中使用了错误的代码行将其推到toView z位置,这导致了此问题。