У меня возникла проблема при представлении контроллера урожая над контроллером навигации.
При закрытии контроллера кадрирования в конце перехода представление контроллера навигации удаляется и не отображается ... (происходит в 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 }
Использование этого ( @TimOliver ) в последней бета-версии Xcode
Это сработало и для меня.
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 }
Исправлена моя проблема, спасибо
if #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
if #available (iOS 13.0, *) {
CropViewController.modalPresentationStyle = .fullScreen
}
Эта проблема решена в iOS 13 и выше. Спасибо.
if #available (iOS 13.0, *) {
CropViewController.modalPresentationStyle = .fullScreen
// cropViewController.modalTransitionStyle = .crossDissolve
cropViewController.transitioningDelegate = ноль
}
Работаю на меня
Ухх. Хорошо. Поскольку явная установка стиля презентации на полноэкранный режим показалась большинству людей исправленной, я закрываю это. :)
Если у вас есть конкретный вариант использования, который требует явно другого стиля модального представления, откройте новую проблему и очень внимательно объясните, что вы пытаетесь сделать. Имейте в виду, что если это ошибка в iOS 13, возможно, мы мало что сможем сделать здесь.
Спасибо!
Самый полезный комментарий
Этот метод хорошо работает на iOS 13.
Не знаю почему.
Я надеюсь, ты найдешь лучший способ.
https://www.dropbox.com/s/wyzc8errinfap1f/TestCrop.zip?dl=0