1

どのセグエを実行するかを決定するために、ステータス バーが現在のビューのどこにあるかを検出したいと考えています。これを行うための推奨される方法は、デバイスの向きを決定することだとわかっていますが、この方法には 2 つの問題があります。

1.) デバイスが垂直または水平から十分に離れていない場合、デバイスの向きは検出されず、セグエは発生しません。

2.)特定の条件下で、物理的なデバイスの向きが横向きであっても画面が縦向きにロックされるようにディスプレイの向きを「ロック」し、作成した縦向きのセグエを実行したいとします。

問題は、" [UIApplication sharedApplication].statusBarOrientation = " がステータス バーの実際の向きを返さないことです。これを検出する簡単な方法はありませんか?そうしないと、これを追跡するために大量の厄介なコードを作成する必要があります。

4

1 に答える 1

1

あなたは試しましたか:[[UIDevice currentDevice] orientation]

ノート:

アプリの設計によっては、 を呼び出す必要がある場合があります[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]。その場合は、必ずどこかで電話[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]してください。

それがあなたの目的に十分でない場合は、加速度計を手動でチェックする必要があると思います. それがどのように行われるかの詳細については、モーション イベントの処理を参照してください。

于 2012-10-28T18:15:53.567 に答える