Je dois extraire un UIViewController du contrôleur de navigation.
Je viens d'écrire cette ligne de code mais en prenant une exception;
trouvé de manière inattendue à zéro lors du déroulement d'une valeur facultative
self.navigationController.popViewControllerAnimated(true)
Si je mets le contrôleur de navigation en option, cette ligne ne fait aucun effet, aucun popping
self.navigationController?.popViewControllerAnimated(true)
Comment le résoudre?
Vous devez déballer votre navigationController correctement
if let navController = self.navigationController {
navController.popViewController(animated: true)
}
Dans mon cas, j'utilise une vue Master Details (Split View Controller). Mon contrôleur de vue de détails est intégré à un contrôleur de navigation. Alors, quand je voulais écarter mon contrôleur de vue Details. Je devais le sortir du contrôleur de navigation du parent (contrôleur de vue Split) Comme ça.
_ = self.navigationController?.navigationController?.popViewController(animated: true)
espérons que cela aide quelqu'un.
Il semble que le contrôleur de vue sur lequel vous travaillez ne soit pas intégré au contrôleur de navigation. S'il y avait un contrôleur de navigation, c'est-à-dire que self.navigationController
N'est pas nul, les deux lignes devraient fonctionner aussi bien même si cette dernière est préférable car elle utilise un chaînage optionnel.
Assurez-vous d’avoir intégré votre View Controller dans un contrôleur de navigation. Vous pouvez le faire en sélectionnant le contrôleur de vue dans l’éditeur de storyboard et en cliquant sur éditeur -> incorporer dans -> contrôleur de navigation. Assurez-vous également que votre point d’entrée du storyboard (la flèche qui indique quel contrôleur de vue est présenté en premier) soit en direction du contrôleur de navigation ou devant celui-ci.