2011-02-07 19 views
1

MonoTouch、MonoDevelop、Interface Builderを使用してiPadアプリケーションを作成していますが、解決できない問題が発生しました。それはおそらく単純なものです。私がやろうとしていることは、Landscapemodeへのアプリケーションの起動を強制することです。アプリケーションはLandscapeで起動しますが、サブビューのサイズは正しく変更されません。iPadランドスケープでサブビューのサイズが正しく調整されない

基本的には私のappdelegateでやっているのは、WindowにIndexViewController.xibというサブビューを追加することです。 IndexViewControllerでは、IndexViewController内のShouldAutorotateToInterfaceOrientationをオーバーライドして、これを返すと、ラベルが付いたビューが表示されます。正しく動作します。それは正しく回転しますが、全体「ウィンドウ」を満たさない

void Initialize() 
    { 
     this.View.AddSubview (NavController.View); 
    } 

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation) 
{ 
      return ((toInterfaceOrientation == UIInterfaceOrientation.LandscapeLeft) || (toInterfaceOrientation == UIInterfaceOrientation.LandscapeRight)); 
} 

しかし、私は今、NavigationControllerを作成し、初期化にIndexController.xibビューに追加してみてください私は、スクリーンショットとサンプルソリューションを投稿しました。そして、私ののInfo.plistUISupportedInterfaceOrientations

Screenshot

Sample solution here

として "UIInterfaceOrientationLandscapeLeft" と "UIInterfaceOrientationLandscapeLeftRight" を許可するように設定されている私があり、私が行方不明ですという単純な死者単純なものは、おそらくですが、それを理解することはできません。

答えて

2

これは、アプリの階層を構築する方法が推奨されている方法ではないことが原因だと思います。あなたがこのように進むことができる間に、あなたは道に沿ってもっと多くの問題に遭遇します。 UIViewController内にNavigationControllerが含まれているのではなく、NavigationControllerのViewウィンドウを追加するのが理想的です。あなたのIndexViewController

あなたというNavigationControllerRootViewController持つ。これは、ウィンドウにナビゲーションコントローラのビューを追加します

IndexViewController indexVC = new IndexViewController() 
UINavigationController navController = new UINavigationController(indexVC); 
window.AddSubview(navController.View); 

、:アプリのデリゲートで

は、私はの線に沿って何かをするだろう Initialise()のIndexViewControllerに追加された UINavigationControllerも削除する必要があります。

サンプルソリューションをダウンロードしてすぐに試してみましたが、画面が完全に画面いっぱいに表示されている状態で、このアプリが横に表示されました。それは自動回転しませんでしたが、これは確かにあなたのための良い出発点になります:)

+0

あなたの答えをありがとう、私の問題を解決:) – degborta

関連する問題