9

iOS7では、めったにありませんが、ときどき、がUIAlertView表示されているときにアプリを回転させると、alertViewとステータスバーのみが回転し、アプリは回転しません。他の誰かがこれを経験したり、回避策を見つけたりしましたか?

4

3 に答える 3

15

次のメソッドをアプリ デリゲートに追加することで、この問題を解決しました。

- (void)application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration  {
NSArray *windows = [application windows];
for (UIWindow *nextWindow in windows) {
    [[nextWindow.rootViewController class] attemptRotationToDeviceOrientation];
     }
}
于 2013-12-13T13:34:20.917 に答える
4

私は反対の問題を抱えていました。アプリは回転しますが、アラート ビューは回転しません。これは、が却下された直後にアラートビューを表示していたためであることがわかりましたUIActionSheet(つまり、却下アニメーションが行われている間)。これにより、アラート ビューがアプリと一緒に回転しないというバグが発生しているように見えました (そして、後でいくつかの小さな視覚的な問題が発生しました)。アクション シートが消え始めてから 0.5 秒後に、次のようにアラート ビューを表示することで、これを解決しました。

[alertView performSelector:@selector(show) withObject:nil afterDelay:0.5];
于 2014-01-07T19:47:07.607 に答える
0

Apple がUIAlertViewの表示メカニズムを変更したことが iOS7 の問題の根源だと思います。これ以降、alertView の表示は、2 つのプライベート ビュー コントローラーの開始後に続きます。

_UIModalItemAppViewController
_UIModalItemsPresentingViewController

つまり、現在 UIAlertView は純粋なビューではありません。完全なビュー コントローラーのライフ サイクルを持つビュー コントローラーの複雑なコレクションの一部です。

于 2014-01-11T19:56:00.143 に答える