我按以下方式加载UIViewController
:
-(void)logIn
{
NewSignInView *viewController = [[[NewSignInView alloc] init] autorelease];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self presentModalViewController:navController animated:YES];
[navController release];
[UIView animateWithDuration:0.3
delay:0
options:UIViewAnimationCurveEaseOut
animations:^{ self.view.alpha = 0; }
completion:^(BOOL finished){ }];
}
NewSignView
是UIViewController
,用于创建UITableView
以获取用户的输入。当我使用UINavigationController
加载它时,它拒绝在横向模式下打开。但是,如果我以下列方式将其直接加载到CCDirector
,它会在横向上正确打开。
[[[CCDirector sharedDirector] openGLView] addSubview:viewController.view];
我在NewSignInView
内使用以下内容:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
因此有些事情阻止UINavigationController
在横向模式下开放。任何人都可以帮助我试图找出导致问题的原因吗?
谢谢
答案 0 :(得分:1)
在你的shouldAutorotateToInterfaceOrientation:方法:
中试试return UIInterfaceOrientationIsLandscape(interfaceOrientation);
因此您的Controller支持两种旋转,而不仅仅是LandscapeRight。 确保带有logIn-Method的ViewController在shouldAutorotateToInterfaceOrientation中返回YES。
希望这会有所帮助。 除此之外,我还会提出一个建议:不要使用Controller命名你的ViewController NewSignInView以避免混淆。如果它只是一个快速而愚蠢的例子 - 没关系。
招呼