2013-05-01 18 views
11

Mam kontroler widoku B, który jest popychany na stos nawigacyjny przez kontroler widoku administratora A, a ten kontroler widoku B musi wyświetlać alternatywny widok, jeśli jest model jest w określonym stanie, więc modalnie prezentuje inny kontroler widoku C. Gdy odrzucę kontroler widoku CI, chciałbym również wyświetlić kontroler widoku B, jeśli jest on również na stosie nav. Chciałbym to zrobić w taki sposób, aby było tylko jedno przejście.ios: jak odrzucić modalny kontroler widoku, a następnie pop pchnąłem kontroler widoku

Wszelkie pomysły?

+0

Czy używasz Xibs lub storyboard do układania swoich widoków? Wygląda na to, że najlepszym rozwiązaniem może być utworzenie instancji trzeciego poziomu w kontrolerze widoku root, a następnie dodanie ich jako subviews. Można je następnie pokazać lub ukryć. To może być dużo bardziej elastyczne niż prezentowanie i odrzucanie poglądów modalnych. – ninehundredt

+0

Używałem storyboardu, byłem skłonny do używania oddzielnego kontrolera view, aby wyświetlić stan alternatywny, ponieważ dokumentacja jabłka wspomniała, że ​​jeśli masz alternatywny interfejs do wyświetlenia, to warto go przedstawić jako osobny widok (wspomniał o tym w dyskusji oddzielne widoki krajobrazu). Myślę, że rzeczywiste zmiany, których potrzebuję, byłyby łatwiejsze do zrealizowania za pomocą oddzielnego widoku, który zostanie odsłonięty w bieżącym widoku, więc spróbuję twojej sugestii – Heisenberg

Odpowiedz

18

W scenariuszu, który napisałeś, kontroler widoku prezentującego kontroler widoku C będzie kontrolerem nawigacji, więc możesz poprosić go, aby wyskoczył B, a następnie odrzucił siebie. Ten kod jest w kontroler widoku C:

-(IBAction)goBackToA:(id)sender { 
    [(UINavigationController *)self.presentingViewController popViewControllerAnimated:NO]; 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

Jeśli używasz storyboard, można zrobić to samo, skoki bezpośrednio z powrotem do z rozwijania segue.

+0

dzięki, po tym, jak myślę, że to, czego potrzebuję, może być łatwiejsze do zrobienia za pomocą właśnie jeden kontroler widoku i zmieniający jego podobrazie zgodnie ze stanem modelu, spróbuję twojego podejścia, jeśli będę potrzebował 2 oddzielnych kontrolerów widoku. – Heisenberg

+0

Dokładnie to, czego potrzebowałem! – Nerrolken