J'ai un parent uiviewontroller ( Voici mon code: p> Voici la conception de mon numéro: p> mainvc code>). À partir de là, j'ai 2 Segue à 2 uiviewControls: firsevc code> (identifiant: gofirstvc code>) et secondvc code> (identifiant: gosecondvc code> )
Dans firsevc code> J'ai un bouton Enregistrer code> et quand je clique, je veux renvoyer le firstvc code> et pour aller sur secondvc code >.
4 Réponses :
Vous pouvez utiliser SetViewControlers code> pour garder le parent uniquement et le secondvc
gosecondvc code> 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 code> 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.
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)
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