UIPopoverController奇怪的调整大小行为

时间:2012-07-06 10:13:19

标签: ios ipad uipopovercontroller window-resize

我使用UINavigationController&amp ;;为iPhone开发了一个静态库。推动一些UIViewControllers。

我正在实施一种方法,允许ipad开发人员将我的库包含在他们的iPad应用程序中。为此,我想在UIPopoverController中显示我的库控制器,其大小为iphone。

我已经开发了,但是每次我推动一个新的viewController时,Popover都会以一种非常奇怪的方式调整自己:

enter image description here

我已经检查了我的视图控制器(通过界面构建​​器),并且AutoResize行为已停用。

有人有解决方案吗?

3 个答案:

答案 0 :(得分:5)

UIViewController显示的UIPopoverViewController需要设置此属性:

contentSizeForViewInPopover

表示其显示大小,UIPopoverViewController将根据该属性的值调整大小。例如:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.contentSizeForViewInPopover = self.view.frame.size;
    // Do any additional setup after loading the view from its nib.
}

答案 1 :(得分:0)

据我了解您的问题,每当您将控制器推送到UINavigationController时,弹出框就会调整大小,UIPopoverControllerpopoverControllerReference的根控制器。我不能说为什么会发生这种情况但是你可以通过向你的视图控制器发送你的popoverController(popoverContentSize的引用,你可以创建一个单例引用)并在你推动时手动设置popoverControllerReference.popoverContentSize = CGSizeMake(320, 460);来摆脱它控制器:{{1}}

答案 2 :(得分:0)

接受的答案使用的方法现已在iOS 7.0中弃用。

我遇到了同样的问题,并且使用popoverContentSize取得了成功。

以下内容:

[_popoverSegue.popoverController setPopoverContentSize:CGSizeMake(320.0f, 460.0f)];

其中_popoverSegue是UIStoryboardPopoverSegue的实例

希望这有助于未来的访客...

(对不起,我应该评论接受的答案,但我没有足够的声誉......)