У меня странное поведение при модальном представлении UIViewControllers в iOS 13. Новый стиль представления, который я видел во всей iOS 13, выглядит следующим образом:
Контроллер представления представлен позади представленного контроллера представления. Это также сдвинуто вниз, чтобы подражать "стеку"
Между тем, представляя контроллеры представления через мое приложение, я продолжаю получать этот эффект:
Контроллер представления не перемещается вообще при представлении нового контроллера представления
Я использую этот код для представления этого контроллера представления:
let controller = storyboard?.instantiateViewController(withIdentifier: "tutorial") as! TutorialController
controller.modalPresentationStyle = .pageSheet
controller.modalTransitionStyle = .coverVertical
present(controller, animated: true, completion: nil)
Вот мой вопрос: мне интересно, почему это происходит, и есть ли способ представить контроллеры представления в обычном стиле iOS 13 (с возвращением контроллера представления назад).
Заранее спасибо!
источник
controller.modalTransitionStyle = .coverVertical
и дажеcontroller.modalPresentationStyle = .pageSheet
(хотя стиль представления будет необходим, если этот код также выполняется на iPad).Ответы:
Оказывается, проблема была в моей иерархии контроллеров представления. Я смог это исправить, сделав представляющий контроллер представления корневым контроллером представления моего приложения. Сначала я установил фоновый контроллер в качестве корневого контроллера представления, вызвав
а затем используя мой предыдущий код
Я представил вид контроллера. Спасибо всем, кто пытался помочь!
источник
Я думаю, что проблема может быть решена с помощью,
vc.modalPresentationStyle = .fullScreen
если нет UINavigationController, в противном случае вы можете использовать эти коды следующим образом:потому что в iOS 13 это новая функция, благодаря которой Apple изменила стиль представления View Controllers по умолчанию на полноэкранный режим в iOS 12
источник
Программный:
Из раскадровки:
Вот и все. Нет необходимости играть с корневым контроллером или окном вообще.
Для справки, посетите эту статью .
источник
Мы можем изменить это в Панели инструментов Инспектора. Чтобы добиться этого: перейдите в пятый раздел панели инструментов инспектора, а затем измените значение в поле «Презентация» на «Полный экран».
источник
Это должно быть единственное свойство, которое вам нужно установить
Подробно в https://developer.apple.com/videos/play/wwdc2019/224/
источник