2011-01-04 9 views
0

私はPresentModalViewControllerをたくさん使っていて、何の問題もありませんでした。しかし、UISplitViewControllerによってホストされているコントローラ内からモーダルコントローラを表示すると、私は奇妙な方向のバグを取得します。セルをタッチすると(UISplitViewのルートコントローラである)私のテーブルビューでUISplitViewController内のPresentModalViewController:ランドスケープモードの変わった動作

は、私が呼ん:

MyController oModal = new MyController(); 
oModal.ModalPresentationStyle = UIModalPresentationStyle.FormSheet; 
oModal.ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve; 
this.PresentModalViewControll(oModal, true); 

iPadが縦になっている場合、すべてが大丈夫です。しかし、それがランドスケープにある場合、モーダルコントローラーはフェードインしますが、向きが正しくありません。その後、フェードインが終了した後、が突然90度反転してになり、正しい向きに調整されます。 私はShouldAutoRotateToInterfaceOrientation()をオーバーライドしているので、それはできません。

アイデア?

ルネ

答えて

0

私はこれにぶつかったと回避策ではなく、真の解決策を持っています。問題は、( "this"のコードで)あなたのモーダルコントローラーを提示しているUIViewControllerが、そのプロパティーのinterfaceOrientationに誤った向きで応答していることです。それは私に起こったし、私は本当に理由がわからない。この問題を回避するには、以下のようなあなたのUIViewController(「本」)にプロパティのカスタムゲッターを追加することです:

-(UIDeviceOrientation)interfaceOrientation 
{ 
    return [[UIDevice currentDevice] orientation]; 
} 

私はthis postからアイデアを得ました。 View ControllerがView Controller階層に正しく埋め込まれていないのが分かっていますが、どう考えていないのでしょうか。お役に立てれば。

+0

しかし、スプリットコントローラでホストされている詳細コントローラから提示しても、間違っています。それは私が得ないものです。つまり、詳細コントローラーが正しく回転し、モーダルではないのはなぜですか? – Krumelur

関連する問題