0
votes

Comment aller de l'enfant UIViewController au parent UIViewController et de là à un autre enfant uiviewontroller

J'ai un parent uiviewontroller ( mainvc ). À partir de là, j'ai 2 Segue à 2 uiviewControls: firsevc (identifiant: gofirstvc ) et secondvc (identifiant: gosecondvc ) Dans firsevc J'ai un bouton Enregistrer et quand je clique, je veux renvoyer le firstvc et pour aller sur secondvc .

Voici mon code: xxx

Voici la conception de mon numéro:

 Entrez la description de l'image ici


0 commentaires

4 Réponses :


0
votes
  • Je pense que vous devriez présenter la seconde du premier plutôt que de rejeter d'abord ensuite la deuxième place.
  • Lorsque vous allez présenter deuxième à partir d'un premier temps, alors que vous voulez que vous puissiez revenir à la main, vous pouvez simplement rejeter 2 Veiwcontrolers à la fois sans aucun piratage.

0 commentaires

1
votes

Vous pouvez utiliser SetViewControlers pour garder le parent uniquement et le secondvc xxx


5 commentaires

gosecondvc est l'identifiant du storyboard du deuxième nom VC ou SEGUE?


Erreur est la suivante: libc ++ abi.dylib: se terminant par une exception non capturée de type NsException. Et gosecondvc est le nom de la Segue.


Il devrait s'agir de l'identifiant de storyboard


Je viens de donner au storyboard le même nom et se bloque également avec la même erreur dans la console.


Fonctionne parfaitement. Était un conflit de noms parce que j'utilisais le même nom pour Segue et Storyboardid. Merci sh_khan.



0
votes

Essayez-le:

Nous pouvons contrôler nos contrôleurs présentés avec la navigation contrôleur appelant PushViewController code> et PopViewController code> méthodes. P>

let destinationController = self.storyboard?.instantiateViewController(withIdentifier: "goSecondVC") as? SecondVC
self.navigationController?.popViewController(animated: animated)
self.navigationController?.pushViewController(destinationController, animated: true) 


0 commentaires

1
votes

Il existe de nombreuses méthodes, mais l'un des génériques est d'utiliser des délégués et des protocoles. Utilisez le code suivant dans vos classes.

Ajouter le code suivant dans la première VC P>

class MainVC: UIViewController {
        override func viewDidAppear() {
             self.performSegue(withIdentifier: <yourSegueIdentifierToFirstVC>, sender: nil)

        }
        override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            if segue.identifier == <yourSegueIdentifierToFirstVC> {
                let cont = segue.destination as! FirstVC
                cont.Delegate = self
            }
        }
    }
    extension MainVC : SecondVCDelegate {
        func goToSecondVC() {
       self.performSegue(withIdentifier: <yourSegueIdentifierToSecondVC>, sender: nil)
        }
    }
    //This is MainVC


0 commentaires