Мне нужна небольшая помощь по проблеме с навигационными контроллерами.
У меня есть navigationController
с 4 ViewController
pushed. Последний vc, который я нажимаю, представляет еще один ViewController
модально. Модальный ViewController
представляет ActionSheet
. В зависимости от ответа пользователя я либо отклоняю только модальный ViewController
, либо хочу вернуться к корневому ViewController
.
В ViewController
, представленном модально, я имею:
- (void) dismissGameReport
{
[[self delegate] GameReportModalWillBeDismissed:modalToPopToRoot];
}
В последнем ViewController
, задвинутом в стек navigationController
, я имею:
- (void)GameReportModalWillBeDismissed: (BOOL)popToRoot;
{
if (popToRoot)
{
[self.navigationController popToRootViewControllerAnimated:NO];
}
else
{
[self dismissModalViewControllerAnimated:YES];
}
}
Отключение модального контроллера представления работает нормально. Однако
[self.navigationController popToRootViewControllerAnimated:NO];
не заставляет корневой ViewController
отображать свои представления. Добавив немного информации из журнала, я вижу, что после сообщения self.navigationController
стек корректно выгружается, но выполнение продолжается последовательно. На экране по-прежнему отображается вид модального ViewController.
В качестве обходного пути я попробовал всегда отклонять модальный контроллер представления и в методе ViewWillAppear
иметь сообщение popToRootAnimated
. Никакой разницы. По-прежнему стек контроллеров выскакивает, но на экране продолжает отображаться вид контроллера моего модального представления, и выполнение продолжается последовательно.
Может кто-нибудь помочь мне, пожалуйста?