0

アプリの向きを正しく動作させるのに問題があります。簡単に言うと、アプリ内で切り替える 2 つのビュー コントローラーがあります。ViewControllerA縦向きまたは上下逆さまにのみ表示する必要があります。ViewControllerB4つの向きのいずれかで表示できます。

これはかなり簡単なようです。shouldAutorotate正確な方法はわかりませんでしたが、 、shouldAutorotateToInterfaceOrientation:、をいじるだけで、supportedInterfaceOrientations必要なものが得られるはずだと考えました。何らかの理由で、 のインターフェイスの向きinfo.plistがビュー コントローラーのコードを完全にオーバーライドしています。ポートレートのみを許可info.plistし、ビューコントローラーのすべてを許可すると、回転しません。そして、呼び出される唯一のメソッドはsupportedInterfaceOrientations(私が返すUIInterfaceOrientationMaskAll)です。同様に、 ですべての向きを許可info.plistすると、デバイスを回転させると viewController も回転しますが、私のコードでは縦向きではない向きを許可していません。

何が間違っているのか本当にわかりません。誰かが助けて、ViewControllerAViewControllerB、および でどの方向を選択する必要があるかについて、私の方向コードがどのように見えるべきかのスニペットを見せてくださいinfo.plist。ありがとう!

4

3 に答える 3

0

オン機能

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

回転させたいすべてのインターフェイスに true を返す必要があります。縦向きのみが必要だとしましょう

return interfaceOrientation == UIInterfaceOrientationPortrait;

逆さま以外のすべてが必要な場合

return !(interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);

plist 自体では、より多くのグローバル値を設定するため、このオプションが使用できない場合はコードが実行されません。2 つのビューに対してこれを実行できるようにするには、plist で許可する必要があります。

お役に立てれば。

于 2012-10-05T15:28:36.557 に答える
0

AppDelegate.m でこれを試してください

//[window_ addSubview:navController_.view];

[window_setRootViewController:navController_];

于 2012-10-25T13:54:13.907 に答える
0

shouldAutorotateToInterfaceOrientation メソッドは、iOS 6 で非推奨になりました。代わりに、現在のすべてのフルスクリーン ビュー コントローラーで supportedInterfaceOrientations および shouldAutorotate メソッドを実装してください。

また、アプリがメイン ウィンドウで setRootViewController を実行していることを確認してください。

于 2012-10-06T17:14:28.747 に答える