Meine Einrichtung ist einfach, und mein Problem unterscheidet sich nicht sehr von this one. Aber um es besser zu erklären, habe ich es hier gepostet:iOS: isMovingToParentViewController funktioniert nicht wie erwartet
NavController -> VC1 -> VC2
VC1 ist Root-View-Controller von NavController. VC2 ist über Push-Strecke von VC1 zugänglich.
Ich möchte erkennen, innerhalb VC1, ob:
Es direkt als Root-View-Controller erschienen (via Push) Es als Folge der VC2 erschien
geknallt werden ich die Dokumentation lesen, die sagt folgende sollte mir sagen, ob später stimmt.
isMovingToParentViewController == NO
Das ist jedoch nicht der Fall, und obige Bedingung stellt sich IMMER als WAHR heraus. Das bedeutet, dass (self.isMovingToParentViewController == NO) immer passiert.
Hier ist mein Code:
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden = YES;
//pushed to stack
if (self.isMovingToParentViewController == YES)
{
//First time
}
else
//popped off
{
//via Pop from VC2
}
}
Elbe ist der Fall für viewDidAppear auch.
Für eine Tatsache zu überprüfen, habe ich am Anfang Breakpoint, und überprüft, dass alle folgenden sind FALSCH, in beiden Fällen:
([self isMovingFromParentViewController])
([self isMovingToParentViewController])
([self isBeingPresented])
([self isBeingDismissed])
Was geschieht? Gibt es irgendetwas, was ich in meinem Storyboard ausgelassen habe? Bitte helfen ...
Hilft es, wenn Fügen Sie den erwarteten Aufruf von '[super viewWillAppear: animated];' zum Start Ihrer 'viewWillAppear:' Methode hinzu? – rmaddy
Ich habe diese Zeile ganz am Anfang von 'viewWillAppear' eingefügt, aber zu keinem Ergebnis. –
Alle vier dieser Methoden sollten "NO" in "VC1" zurückgeben, wenn "VC2" aufgerufen wird. Aber ich würde erwarten, dass 'isMovingToParentViewController' zum ersten Mal' YES' zurückgibt, wenn 'VC1' angezeigt wird. – rmaddy