0

我正在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是 a UIViewController,它创建 aUITableView以从用户那里获取输入。当我使用 a 加载它时,UINavigationController它拒绝以横向模式打开。但是,如果我将它直接加载到CCDirector以下方式,它会在横向中正确打开。

[[[CCDirector sharedDirector] openGLView] addSubview:viewController.view];

我在里面使用以下内容NewSignInView

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

所以有些东西阻止UINavigationController了以横向模式打开。任何人都可以以任何方式帮助我找出导致问题的原因吗?

谢谢

4

1 回答 1

1

尝试在您的 shouldAutorotateToInterfaceOrientation: 方法中进行以下操作:

return UIInterfaceOrientationIsLandscape(interfaceOrientation);

所以你的控制器支持两种旋转,而不仅仅是 LandscapeRight。确保带有 logIn-Method 的 ViewController 在 shouldAutorotateToInterfaceOrientation 中返回 YES。

希望这可以帮助。此外,我会提出一个建议:不要在没有 Controller 的情况下将 ViewController 命名为 NewSignInView 以避免混淆。如果这只是一个快速而简单的例子 - 没关系。

打招呼

于 2012-05-10T12:58:20.793 回答