3

最初のViewControllerがViewであるコードを開発していlandscapeます。そのViewControllerのボタンが押されると、次のViewControllerはになりますportrait。私root view controllernavigation controllerです。

これはストーリーボードアプリケーションです。

UIInterfaceOrientationLandscapeRight最初のルートビューコントローラーと2番目のビューコントローラーで 「はい」を返しましたUIInterfaceOrientationPortrait。しかし、最初は回転が機能しません。ビューを回転させて、正しい回転に変更する必要があります。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

3

ここで、デバイスの向きを変更する1つの方法は...

-(void)viewWillAppear:(BOOL)animated
{
    [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];

}

viewWillAppear:ここで、方向を変更するクラスで、メソッドに行を記述します

また、UIDeviceの警告を削除するには、.mファイルで次のコードを宣言するだけです。

@interface UIDevice (MyPrivateNameThatAppleWouldNeverUseGoesHere)
- (void) setOrientation:(UIInterfaceOrientation)orientation;
@end

ここで、このコードは@implementationファイルの上に定義されています。これがお役に立てば幸いです...

:)

于 2012-09-17T06:40:41.460 に答える
0

2番目が読み込まれたら、または方向変更イベント受信メソッドのViewControllerいずれかに次の行を追加します。viewDidLoad

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];

編集:

shouldAutorotateToInterfaceOrientation次に、ポートレートで表示するCiewControllerで、次のようにメソッドを更新します。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}

また、nibファイルPortraitで、属性インスペクターで方向が設定されていることを確認してください。

それはあなたのために仕事をします。

于 2012-09-17T06:39:52.357 に答える