我通过以下方式加载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
在横向模式下打开。谁能以任何方式帮助我找出导致问题的原因吗?谢谢
最佳答案
尝试在您的shouldAutorotateToInterfaceOrientation:方法中执行以下操作:
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
因此,控制器不仅支持LandscapeRight,还支持两种旋转。
确保带有logIn-Method的ViewController在shouldAutorotateToInterfaceOrientation中返回YES。
希望这可以帮助。
此外,我会提出一个建议:不要用没有Controller的名称命名ViewController NewSignInView以避免混淆。如果这只是一个快速而痛苦的例子-没关系。
打招呼
关于iphone - UINavigation Controller 无法在横向模式下打开,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10486497/