2011-02-09 19 views
4

私はデタッチされたUIPopovercontrollerに問題があります。UIPopovercontrollerがUIButtonから切り離されました

私のアプリはlandscapeモードで動作し、presentPopoverFromRect呼び出しを使用していくつかのpopover要素を提供します。あるものはトップビューから起動され、他のものはディスプレイの深くに埋め込まれたビューから表示されます。ポップオーバーは、ポップオーバーがiPadのディスプレイの上部2/3から提示された場合にうまく動作するようですが、ディスプレイの1/3からポップオーバーを開始しようとすると、ポップオーバーはUIButtonから切り離されて表示されます。 x座標は正しく表示されますが、popoverのy座標はiPad画面の中央または上部にある傾向があります。

CGRectオブジェクトをディスプレイの1/3の位置に作成して固定位置を使用してプレゼンテーションを行いましたが、iPadがポップオーバーをレンダリングするときにポップオーバーをレンダリングすると、上部の2/3ビューまたは画面の最下部(CGRect値を大きなy値にする場合)

この時点で私はアイデアがなく、フォーラムの誰かがこれを見ているか、何を試してもらうことを願っています。任意およびすべてのヘルプのための

おかげで、 ウェス

+0

いずれの方向を使用するようにpopoverArrowDirectionを設定しましたか? – Nevin

+0

こんにちはNevin、応答のおかげで。はい、矢印の方向はUIPopoverArrowDirectionAnyに設定されています。 – Wes

答えて

3

私は私の問題を解決することができたと私は他の誰かが同じ問題を抱えている包み私の解決策を共有したいと考えました。

解決策は、presentPopoverFromRectを呼び出す前にポップオーバーサイズを設定する呼び出しを追加することでした。

[mySettingsPopoverController setPopoverContentSize:CGSizeMake(320, 320) animated:YES]; 
[mySettingsPopoverController presentPopoverFromRect:sender.frame inView:self.navigationButtonsView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

以前、私はポップオーバーを提示する前にポップオーバーのコンテンツサイズを設定していませんでした。私はpopoverのviewcontrollerのviewDidAppearメソッドでpopoverのサイズをtableviewのサイズに変更しました。ポップオーバーを提示する前にpopovercontentsizeを設定していないと、ポップオーバーが添付されていると思われる要素からデタッチする可能性を含む未定義の動作が発生します。

Wes

関連する問題