2017-11-21 5 views
0

Ich bin in detailViewController und wenn ich zurück Knopf drücke, geht es zu mainViewController. Wie kann in mainViewController festgestellt werden, dass es nicht frisch geladen wurde, aber die Zurück-Taste wurde in detailViewController gedrückt?Wie überprüft man, ob ein View-Controller nach einer anderen Seite in der Navigation-Controller-Taste gedrückt wurde?

Es gibt eine Tabelle, die ich in mainViewController nachladen möchte und daher versuche ich festzustellen, ob es frisch geladen wurde oder aus detailViewController stammt. Jede Hilfe würde sehr geschätzt und abgestimmt werden. Vielen Dank.

Antwort

2

Überschreiben Sie die Funktion viewWillAppear() in Ihrem mainViewController, um Aufgaben auszuführen, bevor Sie sie laden.

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated: animated) 

    //do tasks when coming from detailViewController 
} 

EDIT:

Es gibt einen anderen Weg, wenn Sie auf frische Last ecexute den Code nicht in viewWillAppear wollen, aber ich weiß nicht, ob es das Beste, was zu tun ist. Führen Sie in Ihrem Back-Button-Handler folgende Schritte aus:

//pop the detailViewController 
self.navigationController.popViewControllerAnimated(true) 

//mainViewController is now at the top 
//safely unpack it 
if let parentVC = self.navigationController.topViewController as? mainViewController { 
    //call a custom function in mainViewController which will 
    //execute only the stuff you want upon back button press 

    parentVC.customFunction() 
} 
Verwandte Themen