Potrzebuję pomocy w rozwiązaniu problemu z kontrolerami nawigacyjnymi.popToRootViewControllerAnimated nie wyświetla kontrolera widoku root
Mam navigationController
z naciskiem 4 ViewControllers
. Ostatnie vc I push prezentuje modulację w postaci kolejnego ViewController
. Modal ViewController
przedstawia ActionSheet
. W zależności od odpowiedzi użytkownika albo odrzuciam tylko modalny ViewController
lub chcę powrócić do katalogu głównego ViewController
.
W ViewController
prezentowanym modally mam:
- (void) dismissGameReport
{
[[self delegate] GameReportModalWillBeDismissed:modalToPopToRoot];
}
W ostatnim ViewController
nasunąć navigationController
stosie mam:
- (void)GameReportModalWillBeDismissed: (BOOL)popToRoot;
{
if (popToRoot)
{
[self.navigationController popToRootViewControllerAnimated:NO];
}
else
{
[self dismissModalViewControllerAnimated:YES];
}
}
Lekceważenie zdania modalne kontroler działa dobrze. Jednak
[self.navigationController popToRootViewControllerAnimated:NO];
nie powoduje korzeń ViewController
aby wyświetlić jego poglądy. Dodawanie informacji o dzienniku Widzę, że po komunikacie do self.navigationController
stos jest prawidłowo wyskakujący, ale wykonanie jest kontynuowane sekwencyjnie. Ekran nadal pokazuje widok modalnego ViewController.
Jako obejście problemu próbowałem zawsze odwoływać kontroler widoku modalnego, a w metodzie ViewWillAppear
mieć komunikat popToRootAnimated
. Bez różnicy. Nadal stos kontrolek jest wysuwany, ale ekran nadal pokazuje widok kontrolera widoku modalnego, a wykonanie jest kontynuowane sekwencyjnie.
Czy ktoś może mi pomóc?
czy próbujesz debugować z punktem przerwania, w którym twój kompilator wchodzi do pętli? – Hiren