我有一个GLKViewController
,其中包含两个视图:GLKView
和透明UIView
,显示一些命令。
GLKViewController
支持两种设备方向:纵向和横向右侧。
当设备从纵向旋转到横向时,我想:
基本上,GLKView应始终保持纵向,而其他视图应遵循设备方向。
GLKViewController位于NavigationController中。要么我需要让NavigationController在横向上旋转,要么我需要实现一个虚假的导航栏并以编程方式执行'pop'。
我看到了一个简单地旋转视图的解决方案(在收到通知后),但我想让动画保持旋转那个视图。
我尝试使用另一个UIViewController子类,接收GLKViewController和带有命令的View作为两个子UIViewControllers,但它不起作用:屏幕保持黑色。
答案 0 :(得分:-1)
当涉及UINavigationController时,在UINavigationController上创建一个类别并覆盖supportedInterfaceOrientations。
#import "UINavigationController+Orientation.h"
@implementation UINavigationController (Orientation)
-(NSUInteger)supportedInterfaceOrientations
{
return [self.topViewController supportedInterfaceOrientations];
}
-(BOOL)shouldAutorotate
{
return YES;
}
@end
现在,iOS容器(例如UINavigationController)不会咨询他们的孩子以确定他们是否应该自动旋转。
如何创建类别
添加一个新文件(cocoa touch下的Objective c-类别)
类别:UINavigationController上的方向
将上述代码添加到UINavigationController + Orientation.m