Encontrei um problema ao apresentar o controlador de cultura em um controlador de navegação.
Ao dispensar o controlador de corte, ao final da transição a visualização do controlador de navegação é removida e não exibida ... (acontece no iPhone e iPad e apenas no iOS 13).
sem falar que a navegação ainda está lá e a IU está "travada".
@uchiaTziki Um. Você pode ter que me mostrar, desculpe! Você pode anexar uma captura de tela?
capturas de tela anexadas ...
Espero que isso deixe as coisas mais claras ..
Hmm, então você está apresentando dentro de outro controlador de visualização sendo apresentado?
Eu me pergunto se este código de dispensa está acabando dispensando o controlador de visualização errado:
Você pode tentar alterar o código lá e ver se consegue encontrar uma combinação que corrige isso?
Sem ser capaz de testar sozinho, não há nada que eu possa fazer do meu lado. Desculpa!
Já tentei de quase tudo, mas vou tentar de novo ..
O controlador na parte de trás não está sendo dispensado .. sua visão está sendo removida (o que é estranho).
Você tentou esses códigos antes de apresentar o cropViewController?
if #available(iOS 13.0, *) {
cropViewController.modalPresentationStyle = .fullScreen
}
Tentei esta manhã. Isso resolve o bug, mas a animação é a animação modal padrão (de baixo para cima).
A animação especial da vista / quadro não funciona com esta solução
@uchiaTziki você encontrou alguma correção?
Isso é reproduzível no aplicativo de amostra? Em caso afirmativo, posso potencialmente dar uma olhada nele.
A forma como as apresentações modais funcionam no iOS 13 mudou em relação às versões anteriores do iOS. Mas ainda não tive uma boa chance de descobrir exatamente o que precisamos fazer para atualizar o código para isso.
Pelo que posso ver, não está funcionando corretamente quando você tem o seguinte:
Desculpe, eu estava de férias.
Você tentou esses códigos antes de apresentar o cropViewController?
if #available(iOS 13.0, *) { cropViewController.modalPresentationStyle = .fullScreen }
Usar isso ( @TimOliver ) no último Xcode beta
Isso funcionou para mim também.
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)
}
Este método funciona bem no iOS 13.
Não sei por quê.
Espero que você encontre uma maneira melhor.
Olá, conheci o bug no iOS 13.1
se eu usar
dismiss(animated: true, completion: nil)
no iOS 13.1,
Todos os ViewController desaparecem.
Não sei por quê.
Eu só tive que definir cropViewController.modalTransitionStyle = .coverVertical
como uma solução alternativa, já que ele não usa mais a transição personalizada ...
A mesma coisa que @oblq aqui.
Você tentou esses códigos antes de apresentar o cropViewController?
if #available(iOS 13.0, *) { cropViewController.modalPresentationStyle = .fullScreen }
Resolvi meu problema, obrigado
se # disponível (iOS 13.0, *) {
cropViewController.modalPresentationStyle = .fullScreen
}
Obrigado. Isso corrigiu meu problema no iOS 13
após o corte da imagem, dispensando o controlador de corte, no final da transição a visualização do controlador de navegação está sendo removida e não exibida
por favor, me ajude
após o corte da imagem, dispensando o controlador de corte, no final da transição a visualização do controlador de navegação está sendo removida e não exibida
por favor, me ajude
Oi! Basta definir cropViewController.dismiss(animated: **false**, completion: nil)
vez de cropViewController.dismiss(animated: **true**, completion: nil)
Também venho tentando resolver esse problema. Como @ ibdman1991 diz, desativar a animação funciona, mas parece ruim. Acho que remover transitioningDelegate
poderia ser uma solução mais agradável, mas não tenho certeza de quão impactante seria.
let cropViewController = CropViewController(image: image)
cropViewController.modalTransitionStyle = .crossDissolve
cropViewController.transitioningDelegate = nil
se # disponível (iOS 13.0, *) {
cropViewController.modalPresentationStyle = .fullScreen
}
Este problema foi resolvido no iOS 13 e superior. Obrigado
se # disponível (iOS 13.0, *) {
cropViewController.modalPresentationStyle = .fullScreen
// cropViewController.modalTransitionStyle = .crossDissolve
cropViewController.transitioningDelegate = nulo
}
Trabalhando para mim
Uhh. OK. Já que definir explicitamente o estilo de apresentação para tela inteira pareceu corrigir isso para a maioria das pessoas, estou encerrando isso. :)
Se você tiver um caso de uso específico que requer um estilo de apresentação modal explicitamente diferente, abra um novo problema e explique com muito cuidado o que você está tentando fazer. Lembre-se de que, se for um bug no iOS 13, pode não haver muito que possamos fazer aqui.
Obrigado!
Comentários muito úteis
Este método funciona bem no iOS 13.
Não sei por quê.
Espero que você encontre uma maneira melhor.
https://www.dropbox.com/s/wyzc8errinfap1f/TestCrop.zip?dl=0