0

私は、常に横向きでなければならない1つのビューを除いて、横向きと縦向きの両方で動作する必要があるiOSアプリに取り組んでいます。ので、私は持っています:

-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) || (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}

アプリケーションをランドスケープ モードで起動し、このビューに到達してデバイス (iPad) を回転させると、このメソッドが呼び出されて false が返されるため、インターフェイスは回転しません。

しかし、縦向きでこのビューに到達すると、このメソッドが呼び出されて false が返されますが、向きは変わりません。このコンテキストでは、デバイスを横向きに回転すると、メソッドは true を返し、インターフェースは適切に回転します。再度縦向きに回転しようとすると、このメソッドは false を返し、インターフェースは横向きのままになります。

このビューに初めてアクセスしたときに、デバイスが縦向きの場合、インターフェイスが横向きに変わるようにするにはどうすればよいですか?

また、私は

- (NSUInteger)supportedInterfaceOrientations

しかし、それは決して呼び出されません。

前もって感謝します!

4

1 に答える 1

0

shouldAutorotateToInterfaceOrientation:は iOS 6.0 で減価償却されます。supportedInterfaceOrientations代わりにandpreferredInterfaceOrientationForPresentationメソッドをオーバーライドします。

ドキュメントからpreferredInterfaceOrientationForPresentation

ビュー コントローラーがこのメソッドを実装している場合、表示されると、そのビューは優先方向で表示されます (ただし、後でサポートされている別の回転に回転できます)。このメソッドを実装しない場合、システムは現在のステータス バーの向きを使用してビュー コントローラーを表示します。

于 2013-02-15T17:17:05.943 に答える