Próbuję zrozumieć zachowanie nawigacji między ViewControllers z (i bez) za pomocą kontrolera NavigationController i nieporozumienie niektórych rzeczy podczas czytania artykułów i dokumentów, więc postanowiłem je zapytać.ios - Nawigacja między wieloma sterownikami NavigationControllers
Główne pytanie brzmi: Co się stało, jeśli mamy wiele kontrolerów nawigacyjnych w Storyboard i chcemy przejść od jednego do drugiego? (A to można osiągnąć tylko przy użyciu segues jak robimy pomiędzy wspólnymi VC, mam rację?)
Jak rozumiem, o NavigationController reprezentuje stos ViewControllers w którym możemy pop i popychają tych VC. Teraz zmieniamy naszą "lokalizację" z VC pierwszego NavigationControllera na VC z drugiej, co się dzieje dalej? Pierwszy stos zniknął, a teraz pracujemy tylko w drugim? Jeśli tak, czy oznacza to, że stos VC pierwszego kontrolera NavigationController został usunięty z pamięci, czy nie?
Może coś zupełnie nie rozumiem, a może nie :). Będę szczęśliwy mogąc zobaczyć twoje odpowiedzi i mam nadzieję, że zadam ci bardziej szczegółowe pytania dotyczące mechaniki nawigacji.
UPDATE
Chodzi o to, że: Załóżmy, że mamy jeden (pierwszy) VC z dwoma przyciskami, które reprezentują dwie oddzielne części aplikacji. Następnie klikamy pierwszy przycisk i przechodzimy do RootVC jednego NC, a potem wracamy do naszego początkowego VC i wciskamy drugi przycisk i przechodzimy do kolejnego NC. Co stało się ze stosem pierwszego NC, kiedy wracamy do początkowego VC i jaki jest najlepszy sposób, aby przejść "na zewnątrz" NC do początkowego VC?
UPDATE
Próbuję zrozumieć, co dzieje się z pamięcią i które VC są na scenie w tej chwili i tak dalej. Może to absolutnie nieistotne, jeśli mamy jakieś dodatkowe VC w scenie, może potrzebujemy ich, aby szybciej przełączać się pomiędzy NC (lub po prostu VC). Chcę tylko zrozumieć, jak to działa.
Dziękuję za szczegółową odpowiedź, teraz ma to dla mnie sens! Jak rozumiem z [jedyna różnica polega na tym, że teraz nie potrzebujesz drugiego kontrolera nawigacyjnego - więc nie podłączasz pchania do czerwonego NC_] i [_Wszystko VC pozostaje w pamięci, bez względu na to, jak je prezentujesz.] nie ma potrzeby posiadania wielu NC w aplikacji, tworzymy tylko jedno NC i robimy wszystkie rzeczy w nim, prawda? Czy możesz podać przykład, kiedy potrzebujemy wielu NC w aplikacji? – Max
Tak, jeśli tylko naciskasz i piszemy VC, wystarczy jeden kontroler nawigacyjny. Myślę, że najlepszym przykładem użycia dla wielu kontrolerów nawigacyjnych jest to, że po opuszczeniu menu w aplikacji zmienia się widok główny (przechodzisz do jakiejś listy, ale także formularz kontaktowy itd.) Masz wtedy wiele początkowych punktów, z którymi użytkownik współdziała - i miałbyś taką samą ilość NC-ów również :) –
W jednym z moich komentarzy do @Glorfindel powiedziałem o jednym VC (początkowym) z dwoma przyciskami, które przechodzą do różnych części aplikacji (jakiś lewy panel; D). W tym przypadku po przejściu z Initial VC do jednego z NCs robimy ostatni jako widok root, czy mam rację? A co dzieje się z innymi (np. Kiedy przełączamy się między tymi NC)? A także, jak przejść z VC jednego NC do konkretnego VC w innym NC we właściwy sposób? (tylko przy użyciu show show?) – Max