Я реализую контроллер представления контейнера, где часть экрана представляет собой представление, содержащее представление UINavigationController
. Мой viewDidLoad:
выглядит примерно так:
// ...
UIViewController *myNavigationController = [self.storyboard instantiateViewControllerWithIdentifier:@"MyNavigationController"];
[self addChildViewController:myNavigationController];
[self.myContainerView addSubview:myNavigationController.view];
[myNavigationController didMoveToParentViewController:self];
// ...
Нет проблем с поворотами, и вставка новых контроллеров представления в контроллер навигации работает нормально. Но когда пользователь нажимает на кнопку Back UIBarButtonItem
, не только self.myContainerView
, но и целое self.view
анимируется вверх, подобно kCATransitionFromBottom
, вместо обычной анимации всплывающего контроллера навигации. После еще нескольких отладок я понял, что методы контроллера viewWillDisappear:
и viewWillAppear:
моего контроллера вызова вызываются при извлечении из myNavigationController
.
К сожалению, я застрял. Я буду признателен, если кто-нибудь может дать представление о том, что происходит и как обойти это.
Edit:
ОК, неважно Я забыл реализовать shouldAutorotateToInterfaceOrientation:
в одном из дочерних элементов моего контроллера навигации. возврат YES
исправил проблему.