single Funktion um alle Open View Controller zu schließen

Ich habe eine App, bei der es sich um eine Einzelansicht handelt. Ich habe einen Navigations-Controller, der mit allen untergeordneten Controllern des Root-View-Controllers verbunden ist.

In jedem untergeordneten Controller habe ich eine Schaltfläche zum Abmelden. Ich frage mich, ob ich eine einzige aufrufbare Funktion haben kann, mit der alle auf dem Weg geöffneten Controller gelöscht werden, unabhängig davon, welcher Controller gerade geöffnet war, als der Benutzer auf Abmelden drück

Mein einfacher Start:

func tryLogout(){
     self.dismissViewControllerAnimated(true, completion: nil)
     let navigationController = UINavigationController(rootViewController: UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("LoginViewController") )
     self.presentViewController(navigationController, animated: true, completion: nil)
}

Ich suche nach der speichereffizientesten Methode, um diese Aufgabe auszuführen. Ich werde meine Logout-Funktion in eine separate Utils-Datei schreiben, kann mich dann aber nicht selbst benutzen. Und ich habe immer noch das Problem zu wissen, welche Controller dynamisch entlassen werden müssen.

Aktualisiere Pop to Root View Controller wurde vorgeschlagen. Also mein Versuch ist so etwas wie:

func tryLogout(ViewController : UIViewController){
     print("do something")
     dispatch_async(dispatch_get_main_queue(), {
         ViewController.navigationController?.popToRootViewControllerAnimated(true)
         return
     })
 }

Wäre dies der beste Weg, um mein Ziel zu erreichen?