2016-06-02 7 views
-1

Ich habe ein seltsames Problem mit Navigation Stack.Swift - self.navigationController ist null

Übersicht: ich drei View-Controller haben (z AViewController, BViewController, CViewController) mit zwei Navigationsmöglichkeiten:

  1. AViewController zu CViewController.
  2. AViewController zu BViewController-CViewController, oder

Und AViewController in einem UINavigationController eingebettet. Ich benutze Übergänge für Übergänge, alle im Storyboard definiert. Und alle Übergänge sind vom Show (e.g. Push) Typ. Alle Übergänge werden mit der Methode performSegueWithIdentifier(String, AnyObject?) durchgeführt.

Problem: Mit dem ersten Übergang funktioniert alles gut. Alles bedeutet self.navigationController.popViewController(animated) in CViewController funktioniert gut, um zurück zu gehen AViewController. Aber mit dem zweiten Übergang ist self.navigationControllernil in CViewController, obwohl es nicht nil in BViewController ist.

Also wo bin ich falsch?

+2

Bitte zeigen Sie Ihren Code und möglicherweise einen Screenshot Ihres Storyboards – Scriptable

+0

Oh ich werde, wann immer ich die Zeit bekomme. –

+0

Ich hatte das gleiche Problem, als ich Slide-View-Controller in meiner App verwendete. Das Teilen der Probe wird mir helfen, das genaue Problem zu verstehen und könnte Ihnen helfen. – swiftBoy

Antwort

0

Ich weiß nicht, wie ich die Segue geschaffen hatte, aber ich neu erstellt SegueBViewController-CViewController und alles hat gut funktioniert.

0

Wenn Sie Storyboard verwenden, können Sie Navigationssteuerung anstelle von benutzerdefinierten Segmenten verwenden. Daher müssen Sie die Navigation nicht programmatisch einstellen. UINavigationControler setzt die Navigation automatisch zurück oder vorwärts.