Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 演示具有从左向右过渡的透明背景的新视图控制器时出现问题_Ios_Iphone_Swift_Xcode_Catransition - Fatal编程技术网

Ios 演示具有从左向右过渡的透明背景的新视图控制器时出现问题

Ios 演示具有从左向右过渡的透明背景的新视图控制器时出现问题,ios,iphone,swift,xcode,catransition,Ios,Iphone,Swift,Xcode,Catransition,我正试图从左侧展示一个带有过渡的新视图控制器。这是代码 @IBAction func presentNewVC(_ sender: Any) { let storyBoard = UIStoryboard(name: "Main", bundle: Bundle.main) let leftMenuController:NewViewController = storyBoard.instantiateViewController(withIdentifier

我正试图从左侧展示一个带有过渡的新视图控制器。这是代码

 @IBAction func presentNewVC(_ sender: Any) {

        let storyBoard = UIStoryboard(name: "Main", bundle: Bundle.main)
        let leftMenuController:NewViewController = storyBoard.instantiateViewController(withIdentifier: "NewViewController") as! NewViewController

        leftMenuController.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext

        leftMenuController.providesPresentationContextTransitionStyle = true
        leftMenuController.definesPresentationContext = false

        let transition = CATransition()
        transition.duration = 1.0
        transition.type = kCATransitionMoveIn
        transition.subtype = kCATransitionFromLeft

        transition.fillMode = kCAFillModeRemoved

        view.window!.layer.add(transition, forKey: kCATransition)
        present(leftMenuController, animated: false, completion: nil)

    }
现在,在执行滑动动画的同时,转换背景中的现有视图似乎也在滑动

理想情况下,透明的新视图控制器应该从左向右移动,但在移动时,它也会将现有视图显示为背景。

编辑:只是为了更清晰: 我要找的不是如何从左到右导航。实现了过渡,工作正常。问题是不同的。由于我的左菜单视图是透明的,所以在从左到右显示它的同时,它也会在转换时显示底层的现有视图作为它自己的背景。 请参考截图和视频。只是想在过渡期间停止此操作。仅显示的左侧透明视图应从左向右移动。 有关更多详细信息,请参阅视频和屏幕截图

而动画:(问题)


最后:(如预期的那样)

这是我一直在使用的从左到右的过渡,这就是你想要的吗

class SegueFromLeft: UIStoryboardSegue {
override func perform()
{
    let src = self.source
    let dst = self.destination

    src.view.superview?.insertSubview(dst.view, aboveSubview: src.view)
    dst.view.transform = CGAffineTransform(translationX: -src.view.frame.size.width, y: 0)

    UIView.animate(withDuration: 0.25,
                   delay: 0.0,
                   options: UIViewAnimationOptions.curveEaseInOut,
                   animations: {
                    dst.view.transform = CGAffineTransform(translationX: 0, y: 0)
    },
                   completion: { finished in
                    src.present(dst, animated: false, completion: nil)
    }
    )
}
}

尝试应用您的解决方案。它崩溃了。***由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因是:“指定的模式演示样式没有相应的演示控制器。”