2017-08-24 1 views
0

J'ai un contrôleur de navigation, lequel est un contrôleur UIViewController standard. je présente une TableViewController par programatically:NavigationBar Le bouton RETOUR ne fonctionne pas

self.performSegue(withIdentifier: "showTableViewVC", sender: nil) 

Ce TableViewVC est montrant le bouton BACK mais il ne fonctionne pas du tout.

La séquence de ce TableViewVC est un "show/push".

Comment revenir à UIViewController?

enter image description here

+0

Vous devez ajouter un autre Segue à VC précédente pour revenir pop, et ajoutez l'action pour effectuer cette Segue –

+0

me corriger si je me trompe, vous n'utilisez pas un 'UINavigationController' pour rendre la navigation, vous utilisez seulement des segues, n'est-ce pas? –

+0

J'ai un NavigationController qui intègre la racine. J'utilise une section pour afficher le DetailTableViewVC. – Jan

Répondre

1

1. Ajouter un UIBarbutton dans le contrôleur de navigation showTableViewVC.

override func viewDidLoad() { 

    super.viewDidLoad() 

    let backBarButton = UIBarButtonItem.init(barButtonSystemItem: .add, target: self, action: #selector(backButtonTapped(sender:))) as UIBarButtonItem 

    self.navigationItem.setLeftBarButton(backBarButton, animated: true) 

} 

2. Mettre en oeuvre le bouton d'action de retour.

func backButtonTapped(sender: UIBarButtonItem) 
{ 
    self.navigationController?.popViewController(animated: true) 
} 
+0

self.navigationController met '' [, ]. '' Donc, il semble s'empiler correctement aussi le backButtonTapped est déclenché mais '' popViewController (animé: true) '' ou '' popToRoot'' ne saute pas. – Jan