ナビゲーションコントローラーの上にクロップコントローラーを表示すると、問題が発生しました。
クロップコントローラーを閉じると、トランジションの最後にナビゲーションコントローラービューが削除され、表示されません...(iPhoneとiPadで発生し、iOS 13でのみ発生します)。
ナビゲーションがまだそこにあり、UIが「スタック」していることは言うまでもありません。
@uchiaTzikiうーん。 すみません、見せなければならないかもしれません! スクリーンショットを添付できますか?
添付のスクリーンショット...
それが物事をより明確にすることを願っています。
うーん、それであなたはそれを提示されている別のビューコントローラーの中に提示しているのですか?
この却下コードが間違ったViewControllerを却下してしまうのではないかと思います。
そこでコードを変更して、それを修正する組み合わせを見つけることができるかどうかを確認してみてください。
自分でテストできなければ、自分の側からできることは何もありません。 ごめん!
私はほとんど何でも試しましたが、もう一度やり直します。
後ろのコントローラーは閉じられていません..ビューが削除されています(これは奇妙です)。
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)
}
この方法はiOS13でうまく機能します。
理由はわかりません。
私はあなたがより良い方法を見つけることを期待しています。
こんにちは、iOS13.1のバグに遭遇しました
使用する場合dismiss(animated: true, completion: nil)
iOS 13.1の場合
すべてのViewControllerが消えます。
理由はわかりません。
cropViewController.modalTransitionStyle = .coverVertical
を回避策として設定する必要がありました。これは、カスタムトランジションを使用しなくなったためです...
ここでは@oblqと同じです。
CropViewControllerを提示する前に、これらのコードを試しましたか?
if #available(iOS 13.0, *) { cropViewController.modalPresentationStyle = .fullScreen }
私の問題を修正しました、ありがとう
if #available(iOS 13.0、*){
CropViewController.modalPresentationStyle = .fullScreen
}
ありがとう。 これにより、iOS13での問題が修正されました
画像を切り抜いた後、切り抜きコントローラーを閉じ、トランジションの最後にナビゲーションコントローラービューが削除され、表示されません
私を助けてください
画像を切り抜いた後、切り抜きコントローラーを閉じ、トランジションの最後にナビゲーションコントローラービューが削除され、表示されません
私を助けてください
やあ! ただ、セット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
if #available(iOS 13.0、*){
CropViewController.modalPresentationStyle = .fullScreen
}
この問題はiOS13以降で解決されていますありがとうございます
if #available(iOS 13.0、*){
CropViewController.modalPresentationStyle = .fullScreen
// CropViewController.modalTransitionStyle = .crossDissolve
CropViewController.transitioningDelegate = nil
}
私のために働いています
うーん。 わかった。 プレゼンテーションスタイルを明示的に全画面に設定すると、大多数の人にとってそれが修正されたように見えたので、これを終了します。 :)
明示的に異なるモーダルプレゼンテーションスタイルを必要とする特定のユースケースがある場合は、新しい問題を開いて、何をしようとしているのかを非常に注意深く説明してください。 iOS 13のバグの場合、ここでできることはあまりないかもしれないことを覚えておいてください。
ありがとう!
最も参考になるコメント
この方法はiOS13でうまく機能します。
理由はわかりません。
私はあなたがより良い方法を見つけることを期待しています。
https://www.dropbox.com/s/wyzc8errinfap1f/TestCrop.zip?dl=0