このソリューションでは、ナビゲーション コントローラーによって管理されている場合に、個々のビュー コントローラーで向きを制御する方法について説明します。
Xcode 5 で、「Objective-C カテゴリ」タイプの新しいファイルを作成し、その「カテゴリ」を「回転」に設定し、「UINavigationController」を「カテゴリ オン」として選択します。
次の名前を持つ新しいファイル カップルがプロジェクトに表示されます。 UINavigationController+rotation.h UINavigationController+rotation.m
.m ファイルに次のコードを記述します。
- (BOOL) shouldAutorotate
{
return [[self topViewController] shouldAutorotate];
}
- (NSUInteger) supportedInterfaceOrientations
{
return [[self topViewController] supportedInterfaceOrientations];
}
このようにして、ナビゲーション コントローラーは現在のトップ ビュー コントローラーに方向ポリシーを決定させます。
次に、ナビゲーション コントローラーによって管理される特定のビュー コントローラーごとに、向きに関連する 2 つのメソッドをオーバーライドできます。
たとえば、特定のビュー コントローラが縦向きでのみ表示される場合:
- (BOOL) shouldAutorotate
{
return NO;
}
- (NSUInteger) supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
目的の方向が、プロジェクトの配置情報で設定されている方向のいずれかであることを確認してください。これが十分に詳細であり、役立つことを願っています。