0

ポートレートモードの一連のviewControllerに焦点を当てたアプリケーションがありますが、デバイスがランドスケープモードに回転している場合、特定の詳細ビューで別のビューを開く必要があります。したがって、ユーザーは縦向きモードで情報ビューを見て、ユーザーがデバイスを横向きモードに回転すると、新しいビューが追加情報と共に表示されます。ユーザーが縦向きに戻った場合、「元の」詳細ビューが表示されるように、追加されたビューを削除する必要があります。「元の」詳細ビューが横向きに回転されていないことが重要です。新しいビューは横向きモードでのみ開いてください。

shouldAutorotateToInterfaceOrientation: を使用してみましたが、viewController を開くことができましたが、ランドスケープ ビューで表示されていないため、すべてめちゃくちゃに見えます。

どうすればいいですか?

4

3 に答える 3

0

ビューコントローラーを使用して向きが変更されたかどうかを確認し、向きの方法を変更し、横向きに回転すると横向きビューが追加され、デバイスが縦向きに回転するとビューコントローラーのビューからビューが削除されます。

于 2011-03-01T10:34:31.423 に答える
0

shouldAutorotateToInterfaceOrientation

if(UIInterfaceOrientation == UIInterfaceOrientationPortrait){
NewView *newViewController = [[NewView alloc]initWithNib:@"NewView" bundle:nil];
[self.navigationController pushViewController:newViewController animated:NO];
}

他のすべての方向についてもこれを繰り返すことができます。

于 2011-03-01T17:08:33.510 に答える
0

開かれるビューは横向きではなく縦向きモードで開かれるため、shouldAutoRotate の使用は機能しませんでした。

サブビューで beginGeneratingDeviceOrientationNotifications と shouldAutoRotate を使用するソリューションになりました。

于 2011-03-02T09:49:58.430 に答える