0

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

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

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

这是我的 MainWindow.xib 的屏幕截图

在此处输入图像描述

这是代码。

在.h

UINavigationController *navigationController;
IBOutlet UIViewController *container;

在 .m (ApplicationDidFinishLaunchingWithOptions)

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

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

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

4

2 回答 2

1

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

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

我没有尝试过这段代码,但我只是提出想法。谢谢。

于 2012-05-28T05:57:49.737 回答
1

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

请参阅类参考的实现容器视图控制器部分。

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

以下是您可能需要调用的基本方法:

  • addChildViewController:
  • removeFromParentViewController
  • transitionFromViewController:toViewController:duration:options:animations:completion:
  • willMoveToParentViewController:
  • didMoveToParentViewController:
于 2012-05-28T06:03:41.790 回答