2016-04-26 11 views
0

Nach der Implementierung der Statuswiederherstellung in meiner App habe ich Schwierigkeiten mit meinen View-Controllern.self.navigationController ist während der Statuswiederherstellung null

Mein Problem ist, dass in viewDidLoad des View-Controllers ich versuche, die self.naigationController Eigenschaft wiederherzustellen, die nil ist.

Ich habe Haltepunkte in der viewDidLoad Methode jedes View-Controllers gesetzt, der vor demjenigen kommt, den ich versuche wiederherzustellen. Im ersten View-Controller wird der Navigationscontroller gefunden. In jedem nachfolgenden, einschließlich dem, den ich versuche, wiederherzustellen, ist der Navigationscontroller nil.

Diese Fehler verursacht, wo ich nicht die Navigationsleiste Sichtbarkeit festlegen kann, sind Ansichten, fehl am Platz, usw.

Hat jemand eine Idee woran das liegen könnte?

+0

Fehlt der Navigationscontroller nur während 'viewDidLoad'? Oder fehlt noch, wenn die Wiederherstellung abgeschlossen ist? –

+0

Gute Frage. Es ist da, sobald ich irgendwas mit meinem View-Controller mache. Warum denkst du ist das? – grez

+0

Ich habe die Statuswiederherstellung nicht verwendet, aber es ist möglich, dass die View-Controller in der umgekehrten Reihenfolge wiederhergestellt werden, in der sie codiert wurden. Kannst du den Code in 'viewWillAppear' verschieben? –

Antwort

0

Versuchen Sie, den Code auf viewWillAppear zu verschieben.

Im Gegensatz zu viewDidLoad kann viewWillAppear mehrmals aufgerufen werden, also achten Sie darauf, dass Ihr Code idempotent ist. Stellen Sie sicher, dass die Ergebnisse erwartungsgemäß sind, wenn die Methode wiederholt aufgerufen wird. Stellen Sie beispielsweise sicher, dass Sie eine neue Unteransicht nicht initialisieren, wenn die Ansicht bereits hinzugefügt wurde.

+0

Danke. Das funktioniert, aber ich frage mich immer noch genau, wann der Navigationscontroller existiert und warum. – grez