Ich habe eine UINavigationController
mit einer Reihe von UIViewControllers
darauf. Unter Umständen möchte ich genau zwei Ebenen zurückspringen. Ich dachte, ich könnte es tun, indem ich popViewControllerAnimated
zweimal hintereinander rufe, aber es stellt sich heraus, dass das zweite Mal, wenn ich es nenne, es nichts knallt und stattdessen NULL zurückgibt. Muss ich einen Verweis auf meine Ziel-VC speichern und stattdessen popToViewControllerAnimated aufrufen? Ich kann das machen, aber es verkompliziert meinen Code, da ich die UIViewController
* herumreichen muss, während ich VCs auf den Stapel dränge.Aufruf popViewControllerAnimiert zweimal
Hier ist der relevante Auszug:
UIViewController* one = [self.navigationController popViewControllerAnimated:YES];
if (...) {
// pop twice if we were doing XYZ
UIViewController *two = [self.navigationController popViewControllerAnimated:YES];
// stored in "one" and "two" for debugging, "two" is always 0 here.
}
Bin ich etwas seltsam hier? Ich möchte den idiomatischen Code schreiben, also wenn der "richtige" Weg ist, popToViewControllerAnimated
oder etwas ganz anderes zu nennen, werde ich es gerne ändern.
oooh, ich glaube ich, dass die Arbeit für mich machen kann, ohne um die Viewcontroller Zeiger passieren zu müssen. Vielen Dank! –
Als eine FYI musste ich die ViewControllers.count - 3 verwenden, um zwei zurück zu gehen. vc.count - 1 ist die Draufsicht und zwei zurück von dort ist -3. –
Perfekt! Du wusstest sogar, dass ich zum dritten Viewcontroller springen wollte - alles, was ich tun musste, war Cut and Paste. Vielen Dank. –