UIPopOverController在旋转时丢失内容

问题描述:

我的UIPopOverController在旋转(不可重现)时有时丢失其内容,或者例如我从横向中的桌面视图中打开一些内容,将设备旋转为纵向,然后以纵向方式打开相同的内容。UIPopOverController在旋转时丢失内容

显示Popovercontroller,但没有内容可见,即它是黑色....有没有人偶然发现过这个或类似的东西?

+0

到目前为止没有,但你可以在旋转和显示后转储视图控制器视图的框架吗?也许有什么限制/没有正确设置。 – 2011-04-16 08:42:34

我在使用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