私のアプリには複数のビューがあり、一部のビューは縦向きと横向きの両方をサポートする必要がありますが、他のビューは縦向きのみをサポートする必要があります。したがって、プロジェクトの概要では、すべての方向を選択しました。
以下のコードは、iOS6より前の特定のViewControllerでランドスケープモードを無効にするために機能しました。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
shouldAutorotateToInterfaceOrientationはiOS6で非推奨になったため、上記を次のように置き換えました。
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMask.Portrait;
}
このメソッドは、ビューが表示されたときに正しく呼び出されます(これを確実にするためにブレークポイントを設定できます)が、ポートレートモードのマスクのみを返すという事実に関係なく、インターフェイスは引き続きランドスケープモードに回転します。私は何が間違っているのですか?
現在、ビューごとに異なる向きの要件を持つアプリを作成することは不可能のようです。プロジェクトの概要で指定された方向性にのみ準拠しているようです。