4

多くのビューを備えたアプリを作成しましたが、そのうちのいくつかを縦向きのみにしたいです。私はこれを.mファイルにコーディングしました:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return NO;
}

他に何かする必要がありますか?.hファイルにある可能性がありますか?

4

5 に答える 5

5

私にとって最もクリーンなソリューション:

Info.plist ファイルに移動し、「サポートされているインターフェイスの向き」については、「ポートレート (下のホーム ボタン)」以外のすべての値を削除します。

于 2014-07-14T15:36:24.263 に答える
4

そのメソッドで BOOL を返すだけです。ポートレートモードだけが必要な場合は、次のことを意味します。

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationPortrait) ;
}

縦向き逆さまでも問題ない場合 (縦向きの場合はデバイスを 180 度回転させます)、メソッドは次のようになります。

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationPortrait) || (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);
}

最後の条件は、同じ比較を行う への呼び出しに置き換えることができますUIDeviceOrientationIsPortrait(interfaceOrientation)(参照: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIKitFunctionReference/Reference/reference.html )

LE: これが機能しない場合は、次の「ハック」を使用して試すことができます: ビューをもう一度ポップしてプッシュしてみてください (NavigationController を使用している場合)。popViewControllerAnimatedメソッドとメソッドを使用してpushViewController:animated:、コントローラーに必要な向きを強制的に再クエリさせることができます:) ソース: http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html

于 2012-07-11T09:14:50.063 に答える
2

YES単にすべてではなく、サポートする方向 (ポートレート)に戻る必要がありNOます。また、プロジェクトのターゲットの設定で、ポートレート モードのみがサポートされていることを確認してください。

于 2012-07-11T09:13:43.443 に答える
1

ビューコントローラに次のメソッドを追加します。これにより、たとえば、portaraitモードのみがサポートされるようになります。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}
于 2013-02-21T12:00:53.210 に答える
0

これを試して..

 -(BOOL)shouldAutorotate
 {
  return NO;
 }

-(NSUInteger)supportedInterfaceOrientations
 {
 return UIInterfaceOrientationMaskPortrait;
 }

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
 {
  return (interfaceOrientation == UIInterfaceOrientationPortrait);
 }
于 2013-03-29T10:16:04.340 に答える