自定义转换提供“对开始/结束外观转换的不平衡调用”错误

时间:2014-07-23 18:24:23

标签: ios xcode swift uistoryboard uianimation

我使用下面显示的代码以无缝滑动方式呈现新的视图控制器。实际的动画效果很好,但是当动画完成后,所有的视图都会消失,我会留下一个空白的屏幕。控制台中发布了一条错误

"对<开始/结束外观转换的不平衡调用Rocket_Game18GameViewController:0x155e288f0>"

class SlideRightToLeft: UIStoryboardSegue {
override func perform() {
    var sourceVC:UIViewController = self.sourceViewController as UIViewController
    var destVC:UIViewController  = self.destinationViewController as UIViewController

    let sourceVCFrame = sourceVC.view.frame
    let width = destVC.view.frame.size.width
    sourceVC.view.addSubview(destVC.view)
    destVC.view.frame = CGRectOffset(sourceVCFrame, width, 0)

    UIView.animateWithDuration(1.5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: {
        sourceVC.view.frame = CGRectOffset(sourceVCFrame, -width, 0)
        }, completion: {
            finished in
            destVC.view.removeFromSuperview()
            sourceVC.presentViewController(destVC, animated: false, completion: nil)
        })
    }
}

请询问您是否需要更多信息,谢谢!

1 个答案:

答案 0 :(得分:0)

我现在已经通过将其他人的Objective-c代码转换为swift来弄清楚我做错了什么。事实证明,我的整个自定义动画想法是错误的,当iOS7发布时,他们改变了它的工作方式。这是博客的链接,我找到了解决方案,其他任何人都希望看到它

https://github.com/jbradforddillon/TransitioningExample