popToRootViewControllerAnimated не отображает корневой контроллер представления

Мне нужна небольшая помощь по проблеме с навигационными контроллерами.

У меня есть 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. Никакой разницы. По-прежнему стек контроллеров выскакивает, но на экране продолжает отображаться вид контроллера моего модального представления, и выполнение продолжается последовательно.

Может кто-нибудь помочь мне, пожалуйста?

5
задан Rik Poggi 19 January 2012 в 12:59
поделиться