Tengo un comportamiento extraño al presentar UIViewControllers modalmente en iOS 13. El nuevo estilo de presentación que he visto en todo iOS 13 se ve así:
El controlador de vista de presentación aparece detrás del controlador de vista de presentación. También se desplaza hacia abajo para imitar una "pila"
Mientras tanto, cuando presento controles de vista a través de mi aplicación, sigo obteniendo este efecto:
El controlador de vista de presentación no se mueve en absoluto cuando se presenta un nuevo controlador de vista
Yo uso este código para presentar este controlador de vista:
let controller = storyboard?.instantiateViewController(withIdentifier: "tutorial") as! TutorialController
controller.modalPresentationStyle = .pageSheet
controller.modalTransitionStyle = .coverVertical
present(controller, animated: true, completion: nil)
Aquí está mi pregunta: me pregunto por qué está sucediendo esto y si hay una manera de presentar los controladores de vista en el estilo normal de iOS 13 (con el controlador de vista actual retrocediendo).
¡Gracias por adelantado!
fuente
controller.modalTransitionStyle = .coverVertical
e incluso elcontroller.modalPresentationStyle = .pageSheet
(aunque el estilo de presentación sería necesario si este código también se ejecuta en un iPad).Respuestas:
Resulta que el problema era mi jerarquía de controlador de vista. Pude solucionarlo haciendo que el controlador de vista de presentación sea el controlador de vista raíz de mi aplicación. Primero configuré el controlador de fondo como el controlador de vista raíz llamando
y luego usando mi código anterior
Le presenté el controlador de vista. ¡Gracias a todos los que intentaron ayudar!
fuente
Creo que el problema se puede resolver usando
vc.modalPresentationStyle = .fullScreen
si no hay UINavigationController, de lo contrario, puede usar estos códigos de la siguiente manera:porque con iOS 13 esta es una nueva característica que Apple ha cambiado el estilo de presentación predeterminado de los Controladores de vista a una hoja modal desde pantalla completa en iOS 12
fuente
Programáticamente:
Del guión gráfico:
Eso es. No es necesario jugar con el controlador raíz o la ventana en absoluto.
Para referencia, visite este artículo .
fuente
Podemos cambiarlo en la barra de herramientas del Inspector. Para lograrlo: dirígete a la quinta sección de Inspector Tollbar y luego cambia el campo Presentación a Pantalla completa.
fuente
Esta debería ser la única propiedad que necesita establecer
Detallado en https://developer.apple.com/videos/play/wwdc2019/224/
fuente