Uczę się o UINavigationController
i UIViewController
s. Oto prosta aplikacja, którą buduję. Zauważ, że używam ARC.Jak działają UINavigationController i UIViewController?
Moja aplikacja ma kontroler nawigacyjny i dwa kontrolery widoku (nazwijmy je FirstViewController
i SecondViewController
). Po uruchomieniu aplikacji kontroler nawigacyjny popycha FirstViewController
na stosie.
W FirstViewController
Mam przycisk, który popycha SecondViewController po dotknięciu. Oto kod.
FirstViewController.m
-(IBAction)pushSecondViewController
{
SecondViewController *secondViewController = [SecondViewController alloc]init];
[self.navigationController pushViewController:secondViewController animated:YES];
}
W drugim kontrolerze widoku mam przycisk, który pop regulatora prądu widok ze stosu.
SecondViewController.m
-(IBAction)popViewController
{
[self.navigationController popViewControllerAnimated:YES];
}
Tak daleko, tak dobrze. Oto moje pytania:
Czy navigationController sprawdza istniejącą instancję o numerze SecondNavigationController
, a jeśli takie nie istnieje, to tworzy nową?
Jeśli nie, czy powinienem użyć singletonu, aby upewnić się, że tylko jedno wystąpienie zostanie utworzone i ponownie użyte zamiast tworzenia nowej instancji za każdym razem, gdy zostanie naciśnięty przycisk, który popycha SeconViewController
?
Nie, nie chcę przechowywać drugiego kontrolera widoku. Byłem ciekawy, jak działa kontroler nawigacyjny. Dzięki za wyjaśnienie! – ihodo
Aby nie zaczynać nowego tematu.Jeśli moja aplikacja zawiera cztery kontrolery widoku, pierwsze i drugie kontrolery widoku są używane tylko raz w aplikacji. Czy powinienem je wysłać ([self.navigationController popViewControllerAnimated: YES]) z kontrolera nawigacji, aby nie korzystać z pamięci? – ihodo
Nie, używaj tylko przesuwania i przesuwania, aby poruszać się w górę iw dół stosu nawigacyjnego. – jrturton