在导航控制器上显示作物控制器时遇到问题。
当关闭裁剪控制器时,在转换结束时,导航控制器视图将被删除并且不显示......(发生在 iPhone 和 iPad 中,仅在 iOS 13 上发生)。
更不用说导航仍然存在并且用户界面“卡住”了。
@uchiaTziki嗯。 你可能得给我看看,对不起! 你能附上截图吗?
附上截图...
希望能让事情更清楚。
嗯,所以你在另一个视图控制器中呈现它?
我想知道这个关闭代码是否最终关闭了错误的视图控制器:
您能否尝试更改那里的代码,看看是否可以找到修复它的组合?
如果不能自己测试,我就无能为力了。 对不起!
我几乎尝试了任何东西,但我会再试一次..
后面的控制器没有被解雇..它的视图正在被删除(这很奇怪)。
在介绍cropViewController 之前,您是否尝试过这些代码?
if #available(iOS 13.0, *) {
cropViewController.modalPresentationStyle = .fullScreen
}
今天早上试过了。 它确实解决了错误,但动画是默认的模态动画(从下到上)。
来自视图/帧的特殊动画不适用于此解决方案
@uchiaTziki你找到任何解决办法了吗?
这是否可以在示例应用程序中重现? 如果是这样,我可能会看看它。
iOS 13 中模态演示的工作方式与之前版本的 iOS 有所不同。 但是我还没有很好的机会来确定我们需要做什么来更新代码。
据我所知,当您遇到以下情况时,它无法正常工作:
对不起,我在休假。
在介绍cropViewController 之前,您是否尝试过这些代码?
if #available(iOS 13.0, *) { cropViewController.modalPresentationStyle = .fullScreen }
在最新的 Xcode 测试版中使用它 ( @TimOliver ) 就成功了。 所以过渡动画现在对我有用。
这对我也有用。
func cropViewController(_ cropViewController: CropViewController, didFinishCancelled cancelled: Bool) {
//This code fails on iOS13.
//cropViewController.dismiss(animated: true)
let viewController = cropViewController.children.first!
viewController.modalTransitionStyle = .coverVertical
viewController.presentingViewController?.dismiss(animated: true, completion: nil)
}
此方法在 iOS 13 上运行良好。
我不知道为什么。
我希望你能找到更好的方法。
嗨,我遇到了 iOS 13.1 上的错误
如果我使用dismiss(animated: true, completion: nil)
在 iOS 13.1 上,
所有的 ViewController 都消失了。
我不知道为什么。
我只需要将cropViewController.modalTransitionStyle = .coverVertical
为一种解决方法,因为它不再使用自定义过渡...
与此处的@oblq相同。
在介绍cropViewController 之前,您是否尝试过这些代码?
if #available(iOS 13.0, *) { cropViewController.modalPresentationStyle = .fullScreen }
解决了我的问题,谢谢
如果#available(iOS 13.0,*){
cropViewController.modalPresentationStyle = .fullScreen
}
谢谢。 这解决了我在 iOS 13 上的问题
裁剪图像后,关闭裁剪控制器,在转换结束时,导航控制器视图被移除且不显示
请帮帮我
裁剪图像后,关闭裁剪控制器,在转换结束时,导航控制器视图被移除且不显示
请帮帮我
你好! 只需设置cropViewController.dismiss(animated: **false**, completion: nil)
而不是cropViewController.dismiss(animated: **true**, completion: nil)
我也一直在努力解决这个问题。 正如@ibdman1991所说,禁用动画有效,但看起来很糟糕。 我认为删除transitioningDelegate
可能是一个更好的解决方案,但不确定这会有多大影响。
let cropViewController = CropViewController(image: image)
cropViewController.modalTransitionStyle = .crossDissolve
cropViewController.transitioningDelegate = nil
如果#available(iOS 13.0,*){
cropViewController.modalPresentationStyle = .fullScreen
}
此问题已在 iOS 13 及更高版本中解决 谢谢
如果#available(iOS 13.0,*){
cropViewController.modalPresentationStyle = .fullScreen
//cropViewController.modalTransitionStyle = .crossDissolve
cropViewController.transitioningDelegate = nil
}
为我工作
呃。 好的。 由于将演示样式明确设置为全屏似乎可以为大多数人解决这个问题,因此我将其关闭。 :)
如果您有一个特定的用例需要明显不同的模态呈现样式,请打开一个新问题并非常仔细地解释您要尝试做什么。 请记住,如果它是 iOS 13 中的错误,那么我们在这里可以做的可能不多。
谢谢!
最有用的评论
此方法在 iOS 13 上运行良好。
我不知道为什么。
我希望你能找到更好的方法。
https://www.dropbox.com/s/wyzc8errinfap1f/TestCrop.zip?dl=0