Je sais que ce sujet est très populaire, mais je suis un petit problème avec un langage de programmation, le fait est que je ne comprends toujours pas où je mets le code. Eh bien, je vais raconter toute l'affaire:
J'essaie de créer un Swift modal légèrement différent de la normale: en cliquant sur un bouton, ViewController s'affiche (type modal suivant) à l'écran, mais avec un arrière-plan transparent. Seule la vue bleue avec étiquette sera affichée. Lorsque ce ViewController est présenté, il a un fond transparent, mais dès qu’il a terminé la transition, il reste sur le fond noir. Déjà désactivé l'option opaque, et testé certaines options, mais rien de ce dépannage.
Certains peuvent m'aider?
La vidéo est un test dans le simulateur sur le cas ( https://www.youtube.com/watch?v=wT8Uwmq9yqY ).
Je commence par Swift, et je ne sais toujours pas comment programmer dans Xcode. J'ai lu une réponse à une question comportant le code suivant pour résoudre ceci:
self.presentingViewController.providesPresentationContextTransitionStyle = YES;
self.presentingViewController.definesPresentationContext = YES;
modal.modalPresentationStyle = UIModalPresentationOverCurrentContext;
Où dois-je mettre ce code?
Vous pouvez le faire comme ça:
Dans votre contrôleur de vue principale:
func showModal() {
let modalViewController = ModalViewController()
modalViewController.modalPresentationStyle = .overCurrentContext
presentViewController(modalViewController, animated: true, completion: nil)
}
Dans votre contrôleur de vue modale:
class ModalViewController: UIViewController {
override func viewDidLoad() {
view.backgroundColor = UIColor.clearColor()
view.opaque = false
}
}
Si vous travaillez avec un storyboard:
Ajoutez simplement un scénario de storyboard avec Kind
défini sur Present Modally
à votre contrôleur de vue modale et définissez les valeurs suivantes sur ce contrôleur de vue:
Comme Crashalot l'a souligné dans son commentaire: Assurez-vous que la séquence utilise uniquement Default
pour les deux Presentation
et Transition
. Utiliser Current Context
pour Presentation
rend le modal noir, au lieu de rester transparent.