3

我使用 UINavigationController 为 iPhone 开发了一个静态库并推送一些 UIViewControllers。

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

那是我开发的,但是每次我推送一个新的 viewController 时,Popover 都会以一种非常奇怪的方式调整自己的大小:

在此处输入图像描述

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

有人有解决方案吗?

4

3 回答 3

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.
}
于 2012-07-06T12:17:35.200 回答
0

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

于 2012-07-06T11:32:31.993 回答
0

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

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

下面的一些东西:

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

其中 _popoverSegue 是 UIStoryboardPopoverSegue 的一个实例

希望这可以帮助未来的游客......

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

于 2014-09-03T15:41:48.237 回答