2012-05-28 2 views
0

Я придумал странный сценарий, я использую один NavigationViewController и один ViewController (named-container) в своем MainWindow.xib.Two ViewControllers Orientation

NavigationController загружает последующие виды, а параллельно другой ViewController (контейнер) загружает некоторые изображения поверх всего - независимо от того, какой вид отображается навигационнымViewController.

Когда я поворачиваю устройство, последующие виды NavigationController вращаются, как ожидалось, но контейнер и его последующие виды не вращаются.

Вот скриншот моего MainWindow.xib

enter image description here

и вот код.

в .h

UINavigationController *navigationController; 
IBOutlet UIViewController *container; 

в ом (ApplicationDidFinishLaunchingWithOptions)

[window addSubview:navigationController.view]; 
[window addSubview:container.view]; 
[window makeKeyAndVisible]; 

Я также попытался создать отдельный класс и назначил его на ViewController. (Его ViewDidLoad), но он не входит в (ShouldRotateToInterfaceOrientation)

Я где-то читал, что IOS не поддерживает ориентацию для нескольких ViewControllers.

ответ

1

Я думаю, вы должны попробовать это потому, что вы пытаетесь использовать представления буксирных в один navigation.So не делает вид вложенное окна, сделать подвид главного вида, как: -

[window addSubview:navigationController.view]; 
[navigationController.view addSubview:container.view]; 
[window makeKeyAndVisible]; 

Я have't попробовать этот код, но я просто предлагаю идею. спасибо.

+0

Спасибо, Пытались это и решить эту проблему. Хотя мне пришлось использовать дополнительный класс для этого ViewController (контейнер), чтобы заставить все работать. –

+0

В то время как это работает, поскольку Apple специально говорит, что этого не делать, он не может продолжать работать в будущем, и вы, скорее всего, столкнетесь с другими проблемами, связанными с доставкой событий и т. Д. – lnafziger

1

На экран должен быть только один viewController, если вы не используете представления контейнера.

См. Внедрение контроллера контейнера раздел class reference.

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

Вот основные методы, которые вы, возможно, необходимо позвонить:

  • addChildViewController:
  • removeFromParentViewController
  • transitionFromViewController: toViewController: продолжительность: опции: анимация: completio п:
  • willMoveToParentViewController:
  • didMoveToParentViewController:
+0

Спасибо, я видел ссылку на класс и обнаружил, что он будет включать в себя довольно реинжиниринг с моим существующим кодом. Для тех, кто хочет реализовать это, необходимо прочитать: ОБРАТНАЯ СВЯЗЬ ВРАЩЕНИЯ в ссылку ссылки на класс. Еще раз спасибо. –