Я упомянул this question и несколько вопросов о переходе на просмотр/просмотр контроллера, но до сих пор не смог найти удовлетворенный ответ. Большинство решений предлагают перевернуть представления вместо контроллеров просмотра. Однако два контроллера представления в моем приложении имеют совершенно другую логику работы и реализации, поэтому я избегаю их смешивания.Переключаться между двумя ViewControllers под тем же NavigationController
В моем приложении у меня есть модальный контроллер FrontViewController
, который встроен в NavigationController. После нажатия одной кнопки на просмотр контроллер модального просмотра должен перевернуть на BackViewController
и наоборот. Я когда-либо пробовал следующее FrontViewController
:
let navi = UINavigationController(rootViewController: backController)
navi.modalPresentationStyle = .CurrentContext
navi.modalTransitionStyle = .FlipHorizontal
self.presentViewController(backController, animated: true, completion: nil)
Это работает почти как то, что я хочу, за исключением того, что он переворачивается панель навигации, а также. Более того, если я отклоняю модальное представление, только диспетчер представлений в верхней части стека увольняется, в то время как мне не удалось получить правильный родительский/презентационный контроллер, чтобы отклонить все остальные контроллеры стека в модальном представлении.
Таким образом, я также пытался предотвратить ViewController стека и использовать transitionFromViewController
в FrontViewController
, используя тот же навигационный контроллер вместо:
self.navigationController!.addChildViewController(backController)
self.willMoveToParentViewController(nil)
self.navigationController!.transitionFromViewController(self, toViewController: backViewController, duration: 1, options: .TransitionFlipFromLeft, animations: {}, completion: ({Bool -> Void in
self.removeFromParentController()
c.didMoveToParentViewController(self)
}))
Затем я получил эту ошибку во время выполнения на executiing: Parent view controller is using legacy containment in call to -[UIViewController transitionFromViewController:toViewController: duration:options:animations:completion:]
Итак, как переход между двумя контроллерами представления при их предотвращении остается в стеке диспетчера представлений?
Это решение является простым и работает Как колдовство! Большое спасибо! – whitney13625