3

iOS 6.0&で非常に奇妙な問題に直面していiOS 6.0.1ます。

ビューコントローラからモーダルビューを表示してからそのモーダルビューを閉じると、親ビューコントローラのナビゲーションバー(モーダルビューを表示した場所から)がステータスバーと重なります。これはiOS 6.0iOS 6.1Simulatorsでは正常に機能していますが、デバイスでは混乱します。

私のXcodeバージョンは4.6です。

これが私のモーダルを提示する方法です:

UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:iViewController];
[aNavigationController.navigationBar setBarStyle:UIBarStyleBlack];
[self presentModalViewController:aNavigationController animated:YES];
[aNavigationController release];

これが私のモーダルを却下する方法です:

[self dismissModalViewControllerAnimated:YES];

モーダルを閉じた後、添付のナビゲーションバーのスクリーンショットを参照してください。

ここに画像の説明を入力してください

4

1 に答える 1

3

修正しました。これは、RootViewControllerを起動すると、アニメーションが完了するまで回転を保留するためです。完了すると、再び回転できるようになります。問題は、すべての側面(ポートレートを含む)でNOが返されることでした。ビューはきれいに表示されましたが、モーダルを表示して戻ると、ビューのジオメトリが壊れていました。アニメーション中でもポートレートモードでYESを返すように変更すると、問題は解決しました。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)iOrientation {
    return (iOrientation == UIInterfaceOrientationPortrait);
}
于 2013-02-19T23:37:17.483 に答える