5 votes

IOS : L'événement de clic sur le bouton d'une UIView avec une sous-vue ne se déclenche pas lorsque la position de la vue change.

J'utilise un contrôleur de vue parent et un contrôleur de vue enfant dans mon application. Dans lequel le contrôleur de vue parent contient une sous-vue comme un bouton avec une valeur zPosition de 2.

Maintenant, j'ajoute le contrôleur de vue enfant au parent comme ci-dessous,

    func addChildViewController(){

        let storyboard = UIStoryboard(name: "myStoryBoard", bundle: nil)
        let childVC = storyboard.instantiateViewController(withIdentifier: "childVC") as! ChildViewController        
        addChildViewController(childVC)
        self.view.addSubview(childVC.view)
        childVC.didMove(toParentViewController: self)
     }

La sous-vue du bouton est visible en haut du contrôleur de vue enfant, mais l'événement de clic ne se déclenche pas.

Note : Je n'ajoute pas le bouton comme subview sur le contrôleur de vue enfant, seulement sur le contrôleur de vue parent.

2voto

Wezly Points 1519

Le ChildVC couvre-t-il le bouton ? - Vous devez vous assurer que la vue secondaire contenant le bouton est déplacée vers l'avant après l'ajout du ChildVC.

func addChildViewController(){
    let storyboard = UIStoryboard(name: "myStoryBoard", bundle: nil)
    let childVC = storyboard.instantiateViewController(withIdentifier: "childVC") as! ChildViewController        
    addChildViewController(childVC)
    self.view.addSubview(childVC.view)
    childVC.didMove(toParentViewController: self)

    // Bring button subview to front
    self.view.bringSubviewToFront(SubViewWithButtonIn)

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X