两个ViewControllers方向

时间:2012-05-28 05:46:03

标签: ios uinavigationcontroller orientation mainwindow

我想出了一个奇怪的场景,我在MainWindow.xib中使用了一个NavigationViewController和一个ViewController(命名容器)。

NavigationController加载后续视图,并行地,另一个ViewController(容器)在一切之上加载一些图像 - 无论NavigationViewController显示什么视图。

当我旋转设备时,NavigationController的后续视图按预期旋转,但容器及其后续视图不会旋转。

以下是我的MainWindow.xib的截图

enter image description here

这是代码。

in .h

UINavigationController *navigationController;
IBOutlet UIViewController *container;
<。>在.m(ApplicationDidFinishLaunchingWithOptions)

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

我还尝试创建一个单独的类并将其分配给viewController。 (它的ViewDidLoad)方法触发但它没有进入(ShouldRotateToInterfaceOrientation)

我在某处读到IOS不支持多个ViewControllers的方向。

2 个答案:

答案 0 :(得分:1)

我认为你应该尝试这个,因为你试图在一个导航中使用两个视图。所以不要制作窗口的子视图,使主视图的子视图像: -

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

我没有尝试这个代码,但我只是在暗示想法。 感谢。

答案 1 :(得分:1)

除非您使用容器视图,否则屏幕上应该只有一个viewController。

请参阅class reference实施容器视图控制器部分。

非常简短的版本是您需要创建自己的容器,然后使用它们描述的方法将两个视图控制器添加到它:

  

以下是您可能需要致电的基本方法:

     
      
  • addChildViewController:
  •   
  • removeFromParentViewController
  •   
  • transitionFromViewController:toViewController:持续时间:选择:动画:完成:
  •   
  • willMoveToParentViewController:
  •   
  • didMoveToParentViewController:
  •