Tocropviewcontroller: Mengabaikan masalah transisi (iOS 13)

Dibuat pada 8 Agu 2019  ·  23Komentar  ·  Sumber: TimOliver/TOCropViewController

Saya mengalami masalah saat menampilkan pengontrol pangkas di atas pengontrol Navigasi.

Saat menutup pengontrol pangkas, di akhir transisi, tampilan pengontrol navigasi dihapus dan tidak ditampilkan... (terjadi di iPhone dan iPad dan hanya di iOS 13).

belum lagi navigasinya masih ada dan UI "macet".

bug

Komentar yang paling membantu

 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)
    }

Metode ini berfungsi dengan baik di iOS 13.
Saya tidak tahu mengapa.

Saya berharap Anda menemukan cara yang lebih baik.

https://www.dropbox.com/s/wyzc8errinfap1f/TestCrop.zip?dl=0

Semua 23 komentar

@uchiaTziki Um. Anda mungkin harus menunjukkannya kepada saya, maaf! Bisakah Anda melampirkan tangkapan layar?

screenshot terlampir...

  1. menyajikan modal dengan pemilih gambar.
  2. gambar yang dipilih
  3. hadirkan pengontrol tanaman dari sel itu
  4. setelah membatalkan, penolakan menyebabkan pemilih gambar menghilang (dan Anda melihat pengontrol presentasi awal - saya mewarnai pengontrol dengan warna putih)

Harapan itu membuat segalanya lebih jelas..
1
2
3
4

Hmm, jadi Anda mempresentasikannya di dalam pengontrol tampilan lain yang disajikan?

Saya ingin tahu apakah kode pemberhentian ini akhirnya mengabaikan pengontrol tampilan yang salah, lalu:

https://github.com/TimOliver/TOCropViewController/blob/8770be8407540f5873fe714870771cea8a382ac7/Objective-C/TOCropViewController/TOCropViewController.m#L895

Bisakah Anda mencoba mengubah kode di sana dan melihat apakah Anda dapat menemukan kombinasi yang memperbaikinya?

Tanpa bisa mengujinya sendiri, tidak ada yang bisa saya lakukan dari pihak saya. Maaf!

Saya mencoba hampir semua hal, tetapi saya akan mencoba lagi..
Pengontrol di belakang tidak diberhentikan .. tampilannya dihapus (yang aneh).

Apakah Anda mencoba kode ini sebelum menampilkan cropViewController?

if #available(iOS 13.0, *) {
 cropViewController.modalPresentationStyle = .fullScreen
}

Dicoba tadi pagi. Itu memecahkan bug tetapi animasi adalah animasi modal default (dari bawah ke atas).
Animasi khusus dari tampilan/bingkai tidak berfungsi dengan solusi ini

@uchiaTziki apakah Anda menemukan perbaikan?

Apakah ini dapat direproduksi dalam aplikasi sampel sama sekali? Jika demikian, saya berpotensi dapat melihatnya.

Cara kerja presentasi modal di iOS 13 berubah dari versi iOS sebelumnya. Tetapi saya belum memiliki kesempatan yang baik untuk mengetahui dengan tepat apa yang perlu kita lakukan untuk memperbarui kode untuk itu.

Sejauh yang saya bisa lihat, itu tidak berfungsi dengan baik ketika Anda memiliki yang berikut:

  • Pengontrol Navigasi (A) mendorong Pengontrol Tampilan (B)
  • View Controller (B) menyajikan View Controller (C) sebagai lembar formulir
  • View Controller (C) menyajikan CropViewController
  • Ketuk Batal atau Selesai di CropViewController dan Anda akan dapat menemukan bug tersebut.

Maaf saya sedang liburan.

Apakah Anda mencoba kode ini sebelum menampilkan cropViewController?

if #available(iOS 13.0, *) {
 cropViewController.modalPresentationStyle = .fullScreen
}

Menggunakan itu ( @TimOliver ) di Xcode beta terbaru berhasil. Jadi animasi transisi bekerja untuk saya sekarang.

Ini bekerja untuk saya juga.

 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)
    }

Metode ini berfungsi dengan baik di iOS 13.
Saya tidak tahu mengapa.

Saya berharap Anda menemukan cara yang lebih baik.

https://www.dropbox.com/s/wyzc8errinfap1f/TestCrop.zip?dl=0

Hai, saya menemukan bug di iOS 13.1

jika saya menggunakan
dismiss(animated: true, completion: nil)
di iOS 13.1,

Semua ViewController menghilang.

crop

Saya tidak tahu mengapa.

Saya hanya perlu mengatur cropViewController.modalTransitionStyle = .coverVertical sebagai solusi karena kemudian tidak menggunakan transisi khusus lagi ...

Hal yang sama seperti @oblq di sini.

Apakah Anda mencoba kode ini sebelum menampilkan cropViewController?

if #available(iOS 13.0, *) {
 cropViewController.modalPresentationStyle = .fullScreen
}

Memperbaiki masalah saya, terima kasih

jika #tersedia(iOS 13.0, *) {
cropViewController.modalPresentationStyle = .fullScreen
}

Terima kasih. Ini memperbaiki masalah saya di iOS 13

setelah memotong gambar , mengabaikan pengontrol pemangkasan, pada akhir transisi, tampilan pengontrol navigasi dihapus dan tidak ditampilkan

tolong bantu saya

setelah memotong gambar , mengabaikan pengontrol pemangkasan, pada akhir transisi, tampilan pengontrol navigasi dihapus dan tidak ditampilkan

tolong bantu saya

Hai! Cukup setel cropViewController.dismiss(animated: **false**, completion: nil) alih-alih cropViewController.dismiss(animated: **true**, completion: nil)

Saya juga mencoba menyelesaikan masalah ini. Seperti yang dikatakan @ibdman1991 , menonaktifkan animasi berfungsi tetapi terlihat buruk. Saya pikir menghapus transitioningDelegate bisa menjadi solusi yang lebih baik, tidak yakin seberapa besar dampaknya.

    let cropViewController = CropViewController(image: image)
    cropViewController.modalTransitionStyle = .crossDissolve
    cropViewController.transitioningDelegate = nil

jika #tersedia(iOS 13.0, *) {
cropViewController.modalPresentationStyle = .fullScreen
}

Masalah ini diselesaikan di iOS 13 dan di atasnya Terima kasih

jika #tersedia(iOS 13.0, *) {
cropViewController.modalPresentationStyle = .fullScreen
// cropViewController.modalTransitionStyle = .crossDissolve
cropViewController.transitioningDelegate = nihil
}
Bekerja untuk saya

Uhh. Oke. Karena secara eksplisit mengatur gaya presentasi ke layar penuh tampaknya memperbaikinya untuk sebagian besar orang, saya menutup ini. :)

Jika Anda memiliki kasus penggunaan khusus yang memerlukan gaya presentasi modal yang berbeda secara eksplisit, silakan buka edisi baru dan jelaskan dengan sangat hati-hati apa yang Anda coba lakukan. Harap diingat, jika ini adalah bug di iOS 13, mungkin tidak banyak yang bisa kami lakukan di sini.

Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

TimOliver picture TimOliver  ·  4Komentar

erickva picture erickva  ·  4Komentar

ntnmrndn picture ntnmrndn  ·  4Komentar

Srosman picture Srosman  ·  3Komentar

mugunth87 picture mugunth87  ·  5Komentar