2017-08-06 2 views
0

Je voudrais pouvoir ajouter une vue modale devant ma vue de table, qui est affichée par rapport à la vue plutôt que par rapport à la vue vue de la table (comme indiqué sur les photos) 1. Aussi, comment puis-je empêcher l'utilisateur d'interagir avec la table derrière. J'ai inclus le code utilisé pour animer ma vue aussi. Merci d'avance!Comment ajouter une vue modale sur un UITableViewController qui désactive l'interaction de l'utilisateur avec

func newPersonAnimateIn() { 
    self.overlayView.transform = CGAffineTransform.identity 
    self.view.addSubview(overlayView) 

    overlayView.center = self.view.center 
    overlayView.transform = CGAffineTransform.init(scaleX: 1.3, y: 1.3) 
    overlayView.alpha = 0 

    UIView.animate(withDuration: 0.4) { 
     //self.visualEffectView.effect = self.effectHolder 
     self.overlayView.alpha = 1 
     self.overlayView.transform = CGAffineTransform.identity 
    } 
    personName.becomeFirstResponder() 
} 

func newPersonAnimateOut() { 
    self.view.endEditing(true) 
    UIView.animate(withDuration: 0.3, animations: { 
     self.overlayView.alpha = 0 
     self.overlayView.transform = CGAffineTransform.identity 
    }){(success:Bool) in 
     self.overlayView.removeFromSuperview() 
    } 
    personName.text = "" 
} 

@IBAction func addPerson(_ sender: UIBarButtonItem) { 
    newPersonAnimateIn() 
} 

@IBAction func continueButton(_ sender: Any) { 
    newPersonAnimateOut() 
} 

Répondre

1

Peut-être que ce serait assez:

self.tableView.isUserInteractionEnabled = false 

ou créer une autre vue sous votre point de vue modal qui couvre plein écran et réglez isUserInteractionEnabled = false

+0

peut-être un commentaire important: Ne fais pas cette Voir avec alpha == 0.0 Cela devrait être quelque chose de plus que zéro. (1.0 == complètement opaque) –

+0

Merci pour la réponse et les commentaires, qui ont fonctionné comme nécessaire! –