2017-06-20 3 views
1

J'essaie de présenter une vue personnalisée d'un contrôleur de façon modale, mais quand je le fais, l'arrière-plan de tout sauf le champ de texte devient noir comme dans here. (the intended modal)L'arrière-plan de la vue modale apparaît en noir après l'avoir réglé pour effacer

Cela semble être un problème assez courant, mais je l'ai déjà mis en œuvre le code que les questions les plus semblables posent comme la réponse

ici est ma méthode addEvent dans le premier contrôleur:

@IBAction func addEvent(_ sender: Any) { 
    let newEventViewController = NewEventViewController() 
    newEventViewController.view.backgroundColor = UIColor.clear 
    newEventViewController.view.isOpaque = false 
    navigationController?.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext 
    navigationController?.present(newEventViewController, animated: true, completion: nil) 
} 

Toute aide pour trouver ce que je manque serait appréciée. Si cela fait la différence, je crée mon application en utilisant des fichiers xib individuels et non un storyboard.

+0

Pouvez-vous fournir plus d'informations? as-tu essayé self.present ...? également en définissant self.modalPresentationStyle généralement le isOpaque et backgroundColor doivent être définis dans viewDidLoad mais je ne pense pas que c'est votre problème – Jeremie

Répondre

5

Vous devez régler la modalPresentationStyle de newEventController pas NavigationController comme ceci:

newEventViewController.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext 

Aussi bien que pas besoin que je présenterais de l'auto plutôt que le contrôleur de navigation comme ceci:

self.present(newEventViewController, animated: true, completion: nil) 
+0

Merci cela fonctionne comme prévu maintenant! –

+0

Bang sur la cible .. merci. @ChristopherKonopka - Veuillez marquer ceci comme réponse acceptée. – GKK