Programáticamente vuelve al ViewController anterior en Swift

Envío al usuario a una página con un clic de button. Esta página es un UITableViewController .

Ahora, si el usuario toca una celda, me gustaría empujarlo de vuelta a la página anterior.

Pensé en algo como self.performSegue("back").... pero esto parece ser una mala idea.

¿Cuál es la forma correcta de hacerlo?

Swift 3:

Si desea volver al controller de vista anterior

 _ = navigationController?.popViewController(animated: true) 

Si desea volver al controller de vista raíz

 _ = navigationController?.popToRootViewController(animated: true) 

Swift 3 , Swift 4

 if movetoroot { navigationController?.popToRootViewController(animated: true) } else { navigationController?.popViewController(animated: true) } 

Swift 3

Puede que llegue tarde a la respuesta, pero para swift 3 puedes hacerlo de esta manera:

 override func viewDidLoad() { super.viewDidLoad() navigationItem.leftBarButtonItem = UIBarButtonItem(title: "< Back", style: .plain, target: self, action: #selector(backAction)) // Do any additional setup if requinetworking. } func backAction(){ //print("Back Button Clicked") dismiss(animated: true, completion: nil) } 

Si Segue es tipo 'Show' o 'Push', entonces puede invocar "popViewController (animated: Bool)" en la instancia de UINavigationController. O si Segue es una especie de "presente", entonces llame "dismiss (animated: Bool, completion: (() -> Void)?)" Con instancia de UIViewController

para swift 3 solo tiene que escribir la siguiente línea de código

 _ = navigationController?.popViewController(animated: true) 

Puedo networkingirigir a la página raíz escribiendo el código en "viewDidDisappear" del controller navegado,

override func viewDidDisappear(_ animated: Bool) { self.navigationController?.popToRootViewController(animated: true) }