我想出了一个奇怪的场景,我在MainWindow.xib中使用了一个NavigationViewController和一个ViewController(命名容器)。
NavigationController加载后续视图,并行地,另一个ViewController(容器)在一切之上加载一些图像 - 无论NavigationViewController显示什么视图。
当我旋转设备时,NavigationController的后续视图按预期旋转,但容器及其后续视图不会旋转。
以下是我的MainWindow.xib的截图
这是代码。
in .h
UINavigationController *navigationController;
IBOutlet UIViewController *container;
<。>在.m(ApplicationDidFinishLaunchingWithOptions)
[window addSubview:navigationController.view];
[window addSubview:container.view];
[window makeKeyAndVisible];
我还尝试创建一个单独的类并将其分配给viewController。 (它的ViewDidLoad)方法触发但它没有进入(ShouldRotateToInterfaceOrientation)
我在某处读到IOS不支持多个ViewControllers的方向。
答案 0 :(得分:1)
我认为你应该尝试这个,因为你试图在一个导航中使用两个视图。所以不要制作窗口的子视图,使主视图的子视图像: -
[window addSubview:navigationController.view];
[navigationController.view addSubview:container.view];
[window makeKeyAndVisible];
我没有尝试这个代码,但我只是在暗示想法。 感谢。
答案 1 :(得分:1)
除非您使用容器视图,否则屏幕上应该只有一个viewController。
请参阅class reference的实施容器视图控制器部分。
非常简短的版本是您需要创建自己的容器,然后使用它们描述的方法将两个视图控制器添加到它:
以下是您可能需要致电的基本方法:
- addChildViewController:
- removeFromParentViewController
- transitionFromViewController:toViewController:持续时间:选择:动画:完成:
- willMoveToParentViewController:
- didMoveToParentViewController: