あなたの問題が正しいかどうかはわかりません..しかし、「テーブルビューをドリルダウン」してナビゲーションコントローラー階層をさらに深くすることを意味する場合は、次のことを試すことができます..
それが(私が思うに)同様の状況で私がしたことです:
AppDelegate:
.h:
@property (nonatomic) BOOL shouldAutorotate;
.m:
// didFinishLaunchingWithOptions で:
self.shouldAutorotate = NO;
// まだ .m ファイルにあります
// Autorotation handling
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return self.shouldAutorotate ?
UIInterfaceOrientationMaskAllButUpsideDown :
UIInterfaceOrientationMaskPortrait;
}
Portrait Controller を提示する Navigation Controller
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (NSUInteger)supportedInterfaceOrientations
{
if (self.selectedViewController)
return [self.selectedViewController supportedInterfaceOrientations];
return UIInterfaceOrientationMaskPortrait;
}
- (BOOL)shouldAutorotate
{
return YES;
}
Portrait View Controller (ここにも非常によく似たセグエ処理があります):
ビューに表示されます:
[(AppDelegate *)[[UIApplication sharedApplication] delegate] setShouldAutorotate:YES];
回転処理:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (BOOL)shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
Landscape View Controller (おそらくフルスクリーン画像):
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
ナビゲーション コントローラー階層のより深い部分 (ポートレートのみが必要な場合):
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (BOOL)shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
なんとなく複雑に見えますが、それが唯一の方法で、iOS5と6の両方でこれらの回転を適切に機能させることができました。