Ваш контроллер представления корневого уровня регистрируется в качестве наблюдателя уведомления, такого как «POP_TO_ROOT». Когда он получит это уведомление, вызовите метод, чтобы отклонить ваш контроллер модального представления (или что-то еще в стеке).
В вашем стеке viewcontroller любой из представлений 4 или 5 уровней может просто опубликовать уведомление "POP_TO_ROOT".
РЕДАКТИРОВАТЬ: добавить код
На главном «экране» перед вызовом presentModalViewController сделайте следующее:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handlePopToRoot)
name:@"POP_TO_ROOT"
object:nil];
и добавьте этот метод:
- (void) handlePopToRoot {
[[NotificationCenter defaultCenter] removeObserver:self
name:@"POP_TO_ROOT"
object:nil];
[self.navigationController dismissModalViewControllerAnimated: YES];
}
Затем, глубоко в вашей иерархии viewcontroller, когда вы хотите полностью выскочить,
вам просто нужно опубликовать уведомление:
[[NSNotificationCenter defaultCenter] postNotification:@"POP_TO_ROOT" object:nil];