Eu tenho um comportamento estranho ao apresentar o UIViewControllers modalmente no iOS 13. O novo estilo de apresentação que eu já vi no iOS 13 se parece com o seguinte:
O controlador de exibição apresentado aparece atrás do controlador de exibição apresentado. Também é deslocado para imitar uma "pilha"
Enquanto isso, ao apresentar controladores de exibição por meio do meu aplicativo, continuo obtendo este efeito:
O controlador de exibição de apresentação não se move ao apresentar um novo controlador de exibição
Eu uso esse código para apresentar este controlador de exibição:
let controller = storyboard?.instantiateViewController(withIdentifier: "tutorial") as! TutorialController
controller.modalPresentationStyle = .pageSheet
controller.modalTransitionStyle = .coverVertical
present(controller, animated: true, completion: nil)
Aqui está minha pergunta: estou me perguntando por que isso está acontecendo e se há uma maneira de apresentar os controladores de exibição no estilo normal do iOS 13 (com o controlador de exibição em exibição voltando).
Desde já, obrigado!
fonte
controller.modalTransitionStyle = .coverVertical
e até ocontroller.modalPresentationStyle = .pageSheet
(embora o estilo de apresentação seja necessário se esse código também for executado em um iPad).Respostas:
Acontece que o problema era minha hierarquia de controladores de exibição. Consegui corrigi-lo, tornando o controlador de exibição de apresentação o controlador de exibição raiz do meu aplicativo. Primeiro, defino o controlador de segundo plano como o controlador de visualização raiz chamando
e depois usando meu código anterior
Eu apresentei o controlador de exibição. Obrigado a todos que tentaram ajudar!
fonte
Acho que o problema pode ser resolvido usando
vc.modalPresentationStyle = .fullScreen
se não houver UINavigationController, caso contrário, você pode usar esses códigos da seguinte maneira:porque, com o iOS 13, esse é um novo recurso que a Apple alterou o estilo de apresentação padrão dos View Controllers para uma folha modal da tela cheia no iOS 12
fonte
Programaticamente:
Do storyboard:
É isso aí. Não há necessidade de jogar com o controlador raiz ou a janela.
Para referência, visite este artigo .
fonte
Podemos alterá-lo na barra de ferramentas do Inspector. Para alcançá-lo: vá para a quinta seção do Inspector Tollbar e altere o campo Presentation para Full Screen.
fonte
Essa deve ser a única propriedade que você precisa definir
Detalhado em https://developer.apple.com/videos/play/wwdc2019/224/
fonte