UITabBarController
ルートコントローラーとしてを持っているiPadアプリケーションがあります。タブの1つから、UIToolBar
を含むがありUIBarButtonItem
ます。クリックすると、モーダルビューが起動します。
モーダルビューは、最初に起動したときに(横向きと縦向きの両方で)正しいサイズで表示されますが、デバイスを回転させると、その時点からデバイスをどれだけ回転させても、モーダルビューは画面いっぱいに拡大します。
タブバーからモーダルビューを起動しModalPresentationStyle
、表示するビューにを設定しました。
FormSheet
これは、またはに設定したかどうかに関係なく、ModalViewに影響しPageSheet
ます。
誰かが同様の行動を経験したことがありますか?もしそうなら、どのようにそれを解決しましたか?
どうもありがとう
編集
また、4.2以降、モーダルスタイルページ/フォームシートを使用すると、モーダルビューの背後のビューが暗くなりません。ビューの表示が間違っているのでしょうか、それとも4.2の標準でしょうか。
編集2
コード:私のデフォルトUIViewController
では、モーダルビューを次のように表示します。
void HandleNewMsgButtonTouch(object sender, EventArgs e)
{
PresentModalViewController(new ComposeMsgView(), true);
}
モーダルビュー自体で、LoadView
オーバーライドで次のように指定しました。
public override void LoadView()
{
base.LoadView ();
...
// initialser code related to the view
...
View.AutoresizingMask = UIViewAutoresizing.None;
ModalPresentationStyle = UIModalPresentationStyle.PageSheet;
ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve;
}
をオーバーライドしてShouldAutoRotateToInterfaceOrientation
、常にtrueを返すようにしました。
フォームシート/ページシートのどちらを使用するかに関係なく、最初に起動したときに両方とも正しい幅で表示されます(横向きでも縦向きでも、PageSheetが縦向きのビューに表示されることはわかっています)が、回転すると、モーダルビューが画面全体に表示されます( ModalViewをFullScreenで表示した場合)。