仅在纵向模式下,iPad上的iOS 8 popover width = 0

时间:2015-05-01 17:52:38

标签: ios objective-c ipad popover

我在IB中设置了一个非常简单的UI设计,其中分段控件调用segue以在iPad上显示弹出窗口。 segue设置为"呈现为popover"并有一个锚。呈现的视图控制器是嵌入在导航控制器中的表。

在我的prepareForSegue代码中,除了设置标题之外,我做的不多。

呈现的视图控制器具有定义为

的preferredContentSize方法
- (CGSize)preferredContentSize {
CGSize size;

if (self.traitCollection.userInterfaceIdiom == UIUserInterfaceIdiomPad) {
    size = CGSizeMake(600, 600);
} else {
    size = CGSizeMake(320, 480);
}
return size;

}

这在iPad横向和iPhone中都可以在纵向和横向上使用(如全屏)。但在纵向模式的iPad上,popover矩形是 左:0.000000,上:13.000000,宽度:0.000000,高度:31.000000。宽度为0.0000显然不会显示。

如果我在iPad上以横向模式显示弹出窗口,然后将其旋转为纵向,则弹出窗口仍会正常显示。

那么,在纵向模式下将弹出窗口的帧重置为宽度为零,我做错了什么?

1 个答案:

答案 0 :(得分:0)

不幸的是,我遇到了和你描述的完全相同的问题。

  • iPad格局正常
  • iPod / iPhone既可以,无论方向

在iPad横向显示并旋转为纵向显示正确的弹出窗口。

我与你联系的唯一区别是我的popover在&#34; viewDidAppear <给我一帧 {{0,0},{0,13}} /强>&#34;方法