2012-05-02 3 views
0

私はいくつかのviewControllersが使用されているアプリケーションで作業しています。私は風景/ポートレートモードで別のビューに1つのビューから押して、同じモードで戻って移動すると呼ばれるshouldAutorotateToInterfaceOrientationメソッドを移動します。に関するshouldAutorotateToInterfaceOrientationメソッド

同じ手順を繰り返して、2番目または3番目のビューで方向を変更して戻るときは、shouldAutorotateToInterfaceOrientationメソッドが呼び出されません。ビューコントロールが邪魔になりました。

同じものを固めてください。

おかげで、私が正しくあなたの質問を理解していれば

答えて

1

は、あなたがshouldAutorotateToInterfaceOrientationはviewControllersのスタック上に第二または第三のViewControllerで呼び出さ取得したい場合に、デバイスの向きが変わります。

shouldAutorotateToInterfaceOrientationは、top viewControllerでのみ呼び出されます。 2番目または3番目のviewControllerのメソッドでレイアウトコードを実行すると、コードは実行されません。

ソリューションは、コードに応じて単純で多くあります。ここで動作するはずのものがあります(Xcodeではテストされていません)。あなたが特定のchildViewControllerへのポインタを持っている場合は、特にそれを呼び出すことができ

for (UIViewController *vc in [self childViewControllers]) 
{ 
    [vc shouldAutorotateToInterfaceOrientation]; 
} 

:あなたのトップのViewControllerのshouldAutorotateToInterfaceOrientation方法では、のようなものを追加します。ドキュメントから

注:このメソッドの

あなたの実装は単にinterfaceOrientationパラメータの値に基づいて、NO YESを返していないか、すべきです。 interfaceOrientationプロパティの値を取得したり、UIDeviceクラスによって報告された方向値をチェックしたりしないでください。あなたのビューコントローラは、指定された方向をサポートすることも、サポートすることもできません。任意のレイアウトを行うには

、あなたが使用することができます。

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 

は、この情報がお役に立てば幸い!

関連する問題