私はiPadアプリケーションを持っています。これはUITabBarController
をルートコントローラとして持っています。いずれかのタブから、私はUIBarButtonItem
を含むUIToolBar
を持っています。クリックするとモーダルビューが起動します。iPad FormSheet/PageSheetモーダルビュー。回転したときに画面全体が塗りつぶされます。
モーダルビューは、最初に起動されたとき(風景と肖像の両方で)正確なサイズで表示されますが、デバイスを回転させると、モーダルビューが展開されて画面を埋めるようになりますポイント以上。
私はタブバーからモーダルビューを起動していますが、ビューのModalPresentationStyle
を表示するように設定しました。
これは、FormSheet
に設定したのか、PageSheet
に設定しても、ModalViewに影響します。
誰もが同様の動作を経験していますか?もしそうなら、どのように解決しましたか?
感謝
EDIT
は私ももうモーダルスタイルページ/ FormSheetを使用した場合4.2以降モーダルビューの背後にあるビューが出て淡色表示されていないことに気づいた - 私が提示していますビューは間違っているか、これは4.2の標準ですか?
EDIT 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
をalwにオーバーライドしましたaysも真実を返します。
Formsheet/Pagesheetを使用するかどうかに関わらず、最初に起動したときに両方が適切な幅で表示されます(横向きか縦長かに関わらず - PageSheetが縦長ビューを満たしていることを認識しています)。しかし回転すると、画面(私がFullScreenでModalViewを提示したかのように)。
コード例の最新の編集をご覧ください - 私の知る限り、ビューを正しく提示しました(私が提示しているビューコントローラでプレゼンテーションスタイルを設定する)。 – Luke
あなたは試してみました: 無効HandleNewMsgButtonTouch(オブジェクト送信者、EventArgsの電子) { のUIViewController Oコントローラ=新しいComposeMsgViewを(); oController.ModalPresentationStyle = UIModalPresentationStyle.PageSheet; PresentModalViewController(oController、true); } – Krumelur
私はそれを試してみましたが、それは魅力的でした。あなたがそれを答えさせたら、私は正しい印を付けます。どうもありがとう! – Luke