0

ストーリーボードを使用してアプリケーションを作成し、プロジェクトオプションで設定しました->サポートされているデバイスの向き->すべての向き(縦、横、左、横、右、上下逆)。ビューは、NavigationController の Interface Builder (Segue メソッドを使用) によってプッシュされます。

これで、ストーリーボードの一部である単一のビュー コントローラー (TestViewController) があり、方向 (ポートレートのみ) をロックしたいと考えています。これらのメソッドをオーバーライドしましたが、TestViewController は他のメソッドと同じように回転します。ShouldAutorotate が呼び出されない場合、SupportedInterfaceOrientations が発生しますが、結果は他のビューと同じです。

public partial class TestViewController : UIViewController {
...
    public override bool ShouldAutorotate()
    {
     return false;
    }

    public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations()
    {
    return UIInterfaceOrientationMask.Portrait;

    }
...
}

環境

  • モノタッチ 6.06
  • Xcode 4.5.2
  • モノデベロップ 3.05
4

1 に答える 1

1

解決策は、AppDelegate でサポートされているインターフェイスの向きを次のように設定することです

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations (UIApplication application, UIWindow forWindow)
        {
            if (forWindow != null && forWindow.RootViewController != null) {
                UINavigationController nav = forWindow.RootViewController as UINavigationController;
                if(nav.VisibleViewController is TestViewController){
                    return UIInterfaceOrientationMask.Portrait;
                }
            }
            return UIInterfaceOrientationMask.All;
        }
于 2013-01-29T14:53:55.167 に答える