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”而终止应用程序,原因是:“指定的模式演示样式没有相应的演示控制器。”