Powiedzmy, że mam 3 kontrolery ViewController - A, B i C. A pokazuje B, B pokazuje C. Potem chcę wrócić do A bez przechodzenia (wizualnie) B (jak przycisk home). Mój problem polega obecnie na tym, że kiedy się rozwijam A, przez krótki czas wyświetlany jest B (wywoływane są metody viewWillAppear i inne). Jak mogę to rozwiązać?Rozwiń listę - cofnij wiele widoków
Uwaga1: Powyższy przykład jest bardzo uproszczony w porównaniu do mojego prawdziwego drzewa nawigacyjnego aplikacji i dla mnie użycie NavigationController jako kontenera dla wszystkich A, B i C nie jest możliwe (lub przynajmniej nie jest pożądane). Niewiele jest powodów, dla których w trakcie transformacji są złożone sekcje osadzone i różne niestandardowe przejścia (prawie wszystkie animowane przejścia są absolutnie różne) we wszystkich widokach.
Uwaga 2: Znalazłem pseudo rozwiązanie z definiowaniem niestandardowej segue i używanie go jako niestandardowej opcji Unwind. Nie jest to również pożądane, ponieważ chcę korzystać z moich już gotowych animatorów przejścia.
Każda pomoc jest bardzo ceniona.
O ile widzę, przejście od C do A (którego typ znajduje się za B) nie jest odprężeniem (popraw mnie jeśli się mylę). Jeśli to, co zakładam, jest prawdą, to zacznie przeciekać ... no dokładnie nie przeciek, ale zużywa coraz więcej pamięci po cyklu A-> B-> C-> A-> B-> C-> A. .. liczba kopii A na przykład w pamięci po A-> B-> C-> A będzie wynosić 2, co jest złe dla aplikacji. Odsunięcie podczas odprężania polega na tym, że nie tworzy nowego kontrolera za każdym razem, gdy się z nim segregujesz i używasz już utworzonej kopii (nie jest to w 100% poprawne, ale dostajesz punkt). – devfreak
Tak. Przepraszam.W odpowiedzi na Twój komentarz całkowicie zmieniłem swoją odpowiedź. – simons