iOS 5.1中的内存警告后,UISplitView新的幻灯片弹出窗口变为全屏

时间:2012-03-10 19:44:09

标签: size uisplitviewcontroller slide popover ios5.1

我在这里很新。 我在UISplitView中使用新的iOS 5.1幻灯片弹出窗口有问题。 (在5.1之前,主视图控制器以弹出框形式显示,但现在它只是从左侧滑动。) 当我的设备处于纵向模式并且它收到内存警告时,主视图控制器卸载;当我按下工具栏按钮在主视图中滑动时,它会再次加载。 然而,在内存警告之后,它以全屏显示,而不仅仅是原始主视图的大小。 (当我将设备旋转到横向并回到纵向时,它会恢复正确的尺寸。)

在iOS 5.1之前,它总是以正确的大小呈现在popover中。

任何人都有一个想法,如何纠正这个?

我尝试设置主视图的帧大小,但它没有解决问题。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,但我使用此代码来解决问题:

-(void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willPresentViewController:(UIViewController *)aViewController
{
    aViewController.view.frame = CGRectMake(0, 0, 320, self.view.frame.size.height);
}

显然,当收到内存警告时,视图控制器会被释放,所以当它再次出现时,它会从它的父视图中获取它的大小,这是全屏的。因此,您只需在每次加载时重置帧。

答案 1 :(得分:0)

我遇到了同样的麻烦。

您应该将以下代码添加到AppDelegate。

splitViewController.presentsWithGesture = NO;