1

我的UIPopOverController在旋轉(不可重現)時有時丟失其內容,或者例如我從橫向中的桌面視圖中打開一些內容,將設備旋轉爲縱向,然後以縱向方式打開相同的內容。UIPopOverController在旋轉時丟失內容

顯示Popovercontroller,但沒有內容可見,即它是黑色....有沒有人偶然發現過這個或類似的東西?

+0

到目前爲止沒有,但你可以在旋轉和顯示後轉儲視圖控制器視圖的框架嗎?也許有什麼限制/沒有正確設置。 – 2011-04-16 08:42:34

回答

4

我在使用UIPopoverController發生旋轉後遇到了類似的問題(UIPopoverController的大小奇怪地改變了,它將自己重新定位到屏幕上的奇怪位置等)。

對我來說,訣竅是重載應用程序中的UIViewController的didRotateFromOrientation:(UIInterfaceOrientation)方法。所以,過載,從應用的UIViewController類時顯示UIPopoverController正在顯示和呼叫UIPopoverController的presentPopoverFromRect方法:方法再從那裏:

-(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的presentPopoverFromBarButtonItem的UIBarButtonItem:法,系統應該在旋轉後自動地正確定位彈出框。

+0

良好的解決方法...爲了更好的結果設置popoverContentSize和contentViewController之前再次呈現popoverController! – Beppe 2013-12-08 12:29:09