В моем корневом UIViewController я вызываю подменю, второй UIViewController, со следующим кодом:
внутри корневого UIViewController
let myInvMenu = InvMenuCtrl()
myInvMenu.modalPresentationStyle = .fullScreen
myInvMenu.modalTransitionStyle = .partialCurl
present(myInvMenu, animated: false)
На новом экране у меня есть кнопка «Назад», я хочу отклонить ее и вернуться к исходному UIViewController.
dismiss(animated: false)
В этом посте я установил анимацию на false, потому что это работает нормально. Но если я устанавливаю его в true, я вылетаю при увольнении.
Из приведенных ниже документов я предположил, что мне не нужно было ничего обрабатывать самостоятельно, но, очевидно, если бы кто-нибудь мог сказать мне, где мое недоразумение:
The presenting view controller is responsible for dismissing the view controller it presented. If you call this method on the presented view controller itself, UIKit asks the presenting view controller to handle the dismissal.
Похоже, что .modalTransitionStyle = .partialCurl
какое-то время работает со сбоями, если используется для передачи и отклонения UIViewController
. Попробуйте Этот ответ сделать ту же презентацию, используя сдерживание UIView
, или создайте собственный UIPresentationController
с пользовательской анимацией, имитирующей .partialCurl
переход. Надеюсь, вы найдете правильное решение, которое подходит именно вам.
Вы были правы в одном, о чем я никогда не думал, заменяя .partialCurl. Остальные вроде тоже работают. Интересно, безопасно ли просто использовать другой modalTransitionStyle?
@MrSwiftOak Я также собираюсь пересечь позицию (отредактированную версию) на форумах разработчиков Apple, чтобы узнать, знаком ли кто-нибудь с какими-либо ошибками.
Конечно, иногда дополнительное кодирование того стоит.
@MrSwiftOak На самом деле решил использовать встроенную однострочную анимацию. Лучше сначала сделать мое приложение полным, а затем работать над наворотами.
Я пытался избежать дополнительного кодирования, но если это то, что нужно, я вернусь и отмечу ваш ответ как правильный. Может быть, это и лучше, я видел посты, похожие на мой, и в некоторых он вылетает «спорадически», что страшнее, чем постоянное вылет. Спасибо.