16

ナビゲーションビューを備えたiOS6でアプリを作成しました。また、アプリケーションの概要ですべての向きのオプションを設定し、

 -(BOOL) shouldAutoRotate

-(NSUInteger) supportedInterfaceOrientaion

ビューコントローラのメソッド。アプリの向きを実行すると、逆さまを除いて正常に機能します。逆さまもサポートするにはどうすればよいですか。

UITabBarコントローラーを追加するときにも同じ問題に直面します。

あなたのアイデアを共有してください。

ありがとうございました

4

3 に答える 3

17

ハイ私は私の問題の解決策を見つけました

解決策: UINavigationコントローラーで構成されるアプリの場合、UINavigationコントローラークラスのカテゴリを作成し、これらのメソッドを定義しました

-(BOOL) shouldAutorotate{
    return YES;
}

-(NSUInteger) supportedInterfaceOrientations{

    return UIInterfaceOrientationMaskAll;
}

これを追加した後、すべての向きが私のアプリでサポートされました。

同じように、UITabBar Controllerについても行いました。これも、UITabBarControllerのカテゴリを作成することで機能しました。

ありがとうございました。

于 2013-04-17T05:46:14.940 に答える
1

電話アプリは従来、逆さまをサポートしていません(なぜ電話を逆さまにするのですか?)-デフォルトのプロジェクトは縦向きと両方の横向きのオプションをサポートしますが、逆さまにはサポートしません。

Xcodeのプロジェクト情報ビューアでこれを変更すれば問題ありません。サポートされている向きが視覚的に表示され、上下逆の選択は解除されます。

于 2012-11-28T12:08:56.957 に答える
0

NSUserDefaultのソリューションは不完全だと思います。

差出人:https ://developer.apple.com/library/ios/qa/qa1688/_index.html

注:UINavigationControllerなどのUIKitクラスの回転動作を変更する場合は、常にカテゴリよりもサブクラス化を優先する必要があります。他のクラスはUIKitコンテナビューコントローラの既存の動作に依存する可能性があるため、カテゴリによって導入された変更により、予期しない動作が発生する可能性があります。

したがって、最善の解決策は、サブクラスを作成して追加することだと思います。

-(BOOL) shouldAutorotate{
     return YES;
}

-(NSUInteger) supportedInterfaceOrientations{

     return UIInterfaceOrientationMaskAll;
}
于 2013-12-16T17:15:54.013 に答える