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ユーザーからの入力を取得するためのをUIViewController作成するです。UITableViewを使用してロードすると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 を返すことを確認してください。

お役に立てれば。それに加えて、私は1つの提案をします.混乱を避けるために、コントローラなしでViewController NewSignInViewに名前を付けないでください。それが手っ取り早い例にすぎなかったとしても、気にしないでください。

挨拶する

于 2012-05-10T12:58:20.793 に答える