0

複数のビューとルート ビュー コントローラーを持つアプリケーションを開発しています。これは、pushViewController を使用する UINavigationController に基づいています。

BIDLoginController *loginController = [[BIDLoginController alloc] initWithNibName:@"Login" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:loginController];
[self.window setRootViewController:self.navController];

loginController で:

BIDMainPageController *mainPageController = [[BIDMainPageController alloc] initWithNibName:@"MainPage" bundle:nil];
[self.navigationController pushViewController:mainPageController animated:YES];

ただし、View Controller は UINavigationController ではなく、UIViewController のサブクラスです。ここで、一部のビューで方向 (ポートレートとランドスケープ) をサポートし、一部のビューでポートレートのみをサポートする必要があります。私は次のことを試しました:

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

うまくいきません。shouldAutorotate: メソッドが呼び出されていません。UINavigationControllerDelegate も結果なしで試しました。これらのビュー コントローラーのスーパー クラスを UIViewController から UINavigationController に変更すると、ビューは表示されず、ナビゲーション バーのみが表示されます。誰でもこれを手伝ってもらえますか?

4

1 に答える 1

0

あなたが説明していることはできません。iOS 6 は、UINavigationController の異なる子ビュー コントローラーの回転の強制をサポートしていません。デバイスの回転に対して異なる応答をすることはできますが、強制的に回転させることはできません。

于 2013-05-17T17:01:26.550 に答える