我在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上以横向模式显示弹出窗口,然后将其旋转为纵向,则弹出窗口仍会正常显示。
那么,在纵向模式下将弹出窗口的帧重置为宽度为零,我做错了什么?
答案 0 :(得分:0)
不幸的是,我遇到了和你描述的完全相同的问题。
在iPad横向显示并旋转为纵向显示正确的弹出窗口。
我与你联系的唯一区别是我的popover在&#34; viewDidAppear <给我一帧 {{0,0},{0,13}} /强>&#34;方法