Я реализую своеобразное каскадное меню.popViewControllerAnimated: не хочет анимировать
В моей раскадровке у меня есть UINavigationController
, у которых есть UIViewController
в качестве контроллера корневого вида (скажем, это MyViewController
). MyViewController
имеет идентификатор раскадровки: «Меню».
Поскольку этот контроллер представляет собой меню, он отображает таблицуView. При нажатии на ячейку запускается код, особенно:
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;
Длинный снимок: Возможно, вы пропустили вызов '[super ...]' в любом из методов 'viewDidLoad',' viewWillDisappear', ...? – plu
Я только переписываю 'viewDidLoad' и' viewDidAppear: '. Второй отсутствовал вызов 'super', но даже с этим он все еще не оживлял. – zbMax
убедитесь, что вы вызываете [super viewDidAppear] и [super viewDidLoad]? – jailani