2

私のアプリケーションは、iOS 6 をサポートするナビゲーション ベースのアプリケーションです。View Controller を除き、他のすべてのアプリケーションはポートレート モードのみをサポートします。特定のビュー コントローラーだけで、横向きと縦向きの両方をサポートする必要があります。

これにはたくさんの質問がありますが、私に適した答えはありません。どなたかご存知の方、ご指導よろしくお願いします

プロジェクト -> ターゲット -> 概要 -> サポートされている向きで向きをに設定しました

4

3 に答える 3

7

iOS6用のアプリを作成する場合は、最初にUIViewController ドキュメントに示されている iOS6 用のメソッドを使用する必要があります。のような向きの方法shouldAutorotateToInterfaceOrientationは iOS6 では廃止されました。iOS6 の代替方法は ですshouldAutoRotate。アプリが iOS5 もサポートしている場合にのみ、古い方法を使用してください。

2番目UINavigationcontrollerに、アプリケーションで使用していて、異なるインターフェイスの向きが必要な場合、navigationController はアプリケーションのインターフェイスの向きを台無しにする可能性があります。可能な解決策(私にとってはうまくいきました)は、カスタムを実装し、UINavigationControllerそのカスタムクラス内のインターフェイスの向きのメソッドをオーバーライドするUINavigationControllerことです.これにより、コントローラがUINavigationController. 特定のviewControllerにもこれらのメソッドを追加することを忘れないでください。

CustomNavigationController.h

@interface CustomNavigationController : UINavigationController
@end

CustomNavigationController.m

@implementation CustomNavigationController

//overriding shouldRotate method for working in navController
-(BOOL)shouldAutorotate
{  
  return   [self.topViewController shouldAutorotate];   
}

-(NSUInteger)supportedInterfaceOrientations
{
   return [self.topViewController supportedInterfaceOrientations];
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
   return [self.topViewController preferredInterfaceOrientationForPresentation];
}
于 2013-04-04T10:33:55.903 に答える
0

それを行う正しい方法は、横向きと縦向きの両方をサポートされている向きとして設定し、回転させたくないVCで向きを変更できないようにすることだと思います。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

メソッドに渡された向きがサポートされていない場合。

コメントで述べたように、このメソッドは使用できなくなりました。使用する必要があります:

-(BOOL) shouldAutorotate

この関数内で現在の向きを調べ、回転させたくない場合は NO を返します。

于 2013-04-04T10:27:34.180 に答える
0

アプリケーションに異なる向きを許可することを忘れないでください!

そうでなければ、上から何も機能しません

[展開情報] セクションの [全般] のプロジェクト ターゲットに設定します。

ここに画像の説明を入力

于 2014-03-19T15:35:56.380 に答える