1

私のUIPopOverControllerは回転している(再生できない)ときや、たとえば風景のテーブルビューからコンテンツを開いたときにデバイスをポートレートに回転させ、同じコンテンツをポートレートで開きます。回転時にコンテンツを失うUIPopOverController

Popovercontrollerが表示されていますが、コンテンツが表示されていません。つまり、それは黒です...誰かがこれに遭遇しましたか類似していますか?

+0

これまではありませんでしたが、回転して表示した後、ビューコントローラのビューのフレームをダンプすることはできますか?たぶん、限界がある/適切に設定されていないことがあります。 –

答えて

4

回転が発生した後にUIPopoverControllerを使用したときに同様の問題が発生しました(UIPopoverControllerのサイズが変わった、それが画面の奇妙な場所に再配置されました)。

私にとっては、UIViewControllerのdidRotateFromOrientation:(UIInterfaceOrientation)メソッドをアプリケーションにオーバーロードするというトリックがありました。 、方法:あなたがUIPopoverControllerのpresentPopoverFromBarButtonItemを使用してUIBarButtonItemにUIPopoverControllerを抱き合わせている場合は、その

-(void) didRotateFromOrientation:(UIInterfaceOrientation)uiOrientation { 
    if (popoverController.popoverVisible) { 
     // Define rect to be the UI component's rect where you want to tie the popoverController 
     CGRect rect = CGRectMake(...); 
     // This method will reposition the popover correctly 
     [popoverController presentPopoverFromRect:rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:NO]; 
    } 
} 

注:再びそこから方法:だからUIPopoverControllerが表示され、UIPopoverControllerのpresentPopoverFromRectを呼び出したときに表示されている、アプリケーションののUIViewControllerクラスからメソッドをオーバーロードシステムは自動的に回転の後でpopoverの位置を自動的に処理しなければなりません。

+0

良い回避策...より良い結果を得るには、popoverContentrollerを再び表示する前にpopoverContentSizeとcontentViewControllerを設定してください! – Beppe

関連する問題