popViewControllerAnimated: не хочет анимировать

Я реализую своего рода каскадное меню.

В моей раскадровке у меня есть UINavigationController которые имеют UIViewController в качестве корневого контроллера представления (скажем, это MyViewController). MyViewController имеет идентификатор раскадровки: "Меню".
Поскольку этот контроллер является меню, он отображает tableView. При нажатии на ячейку запускается некоторый код, особенно:

UINavigationController *menuNavigator = (UINavigationController*)[self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
MyViewController *newMenu = (MyViewController*)menuNavigator.topViewController;
//Some configurations of newMenu
[self.navigationController pushViewController:newMenu animated:YES];

Так как здесь все отлично работает.

В подменю последняя ячейка является ячейкой "назад". Когда пользователи касаются его, он запускает код:

[self.navigationController popViewControllerAnimated:YES];

Я правильно вернусь в предыдущее меню, но без анимации.

Я также попробовал:

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];
[self.navigationController popToRootViewControllerAnimated:YES];

Но у меня до сих пор нет анимации.

На раскадровке мой контроллер навигации не отображает панель навигации. Если я покажу его и коснусь кнопки "назад", которая появляется автоматически, результат будет тот же: никаких анимаций.

Что не так с моим кодом?

редактировать
Я использую Autolayout и ARC;

1 ответ

Изменить: у вас происходит что-то смешное. Эта строка кода выглядит неправильно:

UINavigationController *menuNavigator = (UINavigationController*)[self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];

Похоже, вы пытаетесь получить контроллер навигации, создавая экземпляр контроллера представления. Я не понимаю, зачем вам нужен такой навигатор. Вы можете просто получить навигационный контроллер с self.navigationController,

Я делаю нечто подобное, и мой код выглядит следующим образом.

в didSelectRowAtIndexPath: метод, я не создаю экземпляры через объект раскадровки, но вместо этого делаю:

    DVSecondTableViewController *vc = [[DVSecondTableViewController alloc] init];
    [self.navigationController pushViewController:vc animated:YES];

Чтобы вернуться назад, я просто использую кнопку "Назад", которую предоставляет контроллер навигации, поэтому я не могу вам помочь.