Also habe ich es aus, basiert vor allem von diesem Posten - http://makeapppie.com/2014/09/15/swift-swift-programmatic-navigation-view-controllers-in-swift/
In SecondViewController
vor der Klassendeklaration, fügen Sie diesen Code:
protocol SecondVCDelegate {
func didFinishSecondVC(controller: SecondViewController)
}
innen Dann von SecondViewContoller
fügen Sie eine Klassenvariable hinzu:
var delegate: MeditationVCDelegate! = nil
dann innerhalb Ihrer Funktion, die Ihre Schaltfläche Ziele, fügen Sie diese:
self.navigationController?.popViewControllerAnimated(true)
delegate.didFinishSecondVC(self)
Was wir hier tun, in SecondViewController
das Pop tut, und nicht keine Daten vorbei, aber da wir haben ein Protokoll definiert, verwenden wir das in ViewController
, um die Daten zu behandeln.
Also die nächsten, in ViewController
, fügen Sie das Protokoll, das Sie in SecondViewController
in der Liste der Klassen definieren ViewController
Erben von
class ViewController: UIViewController, SecondVCDelegate { ... your code... }
Sie finden die Funktion hinzufügen müssen wir in dem neuen Protokoll definiert, um mach den Compiler glücklich. Innerhalb von ViewController
‚s Klasse, fügen Sie diese:
func didFinishSecondVC(controller: SecondViewController) {
self.myBoolVar = true
controller.navigationController?.popViewControllerAnimated(true)
}
In SecondViewController
wo wir didFinishSecondVC
anrufen, sind wir diese Methode in der ViewController
Klasse aufrufen, die Steuerung auf den wir knallen. Es ist ähnlich, wenn wir diesen Code innerhalb von SecondViewController
geschrieben haben, aber wir haben ihn in ViewController
geschrieben und verwenden einen Delegaten, um die Nachrichten zwischen den beiden zu verwalten.
schließlich in ViewController
, in der Funktion Push-SecondViewController
wir Targeting, fügen Sie diesen Code:
let secondVC = secondViewController()
secondVC.delegate = self
self.navigationController?.pushViewController(secondVC, animated: true)
Das ist es! Sie sollten alle darauf eingestellt sein, Code zwischen zwei View-Controllern zu übergeben, ohne Storyboards zu verwenden!
die Antwort, die Sie suchen, ist zu diesem Beitrag [es möglich, Pass-Daten mit popViewControllerAnimated?] [ 1] [1]: http://stackoverflow.com/questions/13509832/it-possible-to-pass-data-with-popviewcontrolleranimated –