添加UIViewController会混淆屏幕方向

时间:2013-05-21 14:11:46

标签: ios objective-c opengl-es uiviewcontroller screen-orientation

我开始使用GLSprite示例应用(source code),然后通过添加

添加了UIViewController
UIViewController *vc = [[UIViewController alloc] init];
vc.view = glView;
self.window.rootViewController = vc;
[window makeKeyAndVisible];

GLSpriteAppDelegate::applicationDidFinishLaunching.的末尾控制器似乎正在工作,因为我可以弹出游戏中心窗口,但它已经搞砸了我的屏幕orientation。该应用在portrait中很好,但在所有其他rotations中,它在侧面错误地显示了白条,就像其中一个视图旋转了90度一样。

我在[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];中正在进行EAGLView::initWithCoder,然后我尝试将其移至applicationDidFinishLaunching的末尾,但它具有相同的行为。

有人可以帮忙吗?我该怎么做才能修复或调试这个?谢谢!

1 个答案:

答案 0 :(得分:1)

问题是新的UIViewController正在旋转,当我的游戏期望一个永远的纵向屏幕。要修复我创建了一个自定义viewcontroller并实现了

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return 0;
}