Na kontrolerze widoku mam przycisk, który przedstawia inny kontroler widoku. Z drugiego kontrolera widoku mogę przejść do innych kontrolerów widoku, ale niekoniecznie do tego, który mnie tu dostarczył. Jeśli tak, jak mogę usunąć oryginalny kontroler widoku?iPhone - Usuwanie przedstawionego kontrolera widoku
9
A
Odpowiedz
25
Twój opis jest nieco niejasne tutaj. Nie może być 3 różne przypadki tutaj:
- przechodzenie przez kontrolera nawigacji hierarchii
- wyrwanie się z kontrolerem nawigacyjnym hierarchii do innego kontrolera widoku
- tylko dodanie innego kontrolera widoku, aby prąd w kontroler nawigacji stosu
W pierwszym przypadku można użyć metod UINavigationController:
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
i użyj właściwości viewControllers, aby poruszać się po stosie.
Ina drugi, jeśli chcesz, aby wyrwać się hierarchię do jednego zupełnie innego kontrolera widoku, a następnie po prostu zrobić to:
[[[UIApplication sharedApplication] keyWindow].rootViewController dismissViewControllerAnimated:YES completion:nil];
[[UIApplication sharedApplication] keyWindow].rootViewController = newController;
lub nawet lepiej: dodać drugi wiersz w bloku zakończenia pierwszej linii.
A w trzecim przypadku, jeśli chcesz tylko zrobić jeden wyjątek, ale poza tym pobyt w kontroler nawigacyjny stosie, a następnie za pomocą metod:
- (void)addChildViewController:(UIViewController *)childController
- (void)removeFromParentViewController
17
To zależy od tego, jak faktycznie przedstawiłeś bieżący kontroler widoku. Jeśli było modally, następnie
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
Jeśli został wciśnięty przy użyciu kontrolera nawigacji:
[self.navigationController popViewControllerAnimated:YES];
można co do tego, co zostało próbowałem dotąd pisać kod. Co również używasz do załadowania kontrolera widoku. Czy to jest UINavigationController? Czy próbowałeś otworzyć kontroler widoku? –
wygląda dla mnie jak owcze pytanie ... proszę wkleić jakiś kod, który próbowałeś do tej pory ... –
Jeśli użyję metody dismissViewController lub popViewController, czy żaden z nich nie przeniesie mnie do oryginalnego kontrolera widoku? Szukam sposobu, jeśli to możliwe, aby odrzucić początkowy kontroler widoku. – Carmichael