【发布时间】:2015-07-07 17:11:04
【问题描述】:
在我的 iOS 8 应用程序中,除了 iPhone 6 Plus 横向之外,此弹出框在所有设备上以所有方向正确显示:
这是它在 iPhone 6 Plus 横向上的外观(几乎从上到下延伸):
当它像这样显示时,在视图外部单击不会将其关闭(尽管 Cancel 确实有效)。旋转回纵向使其恢复正常。
此UIViewController 中的所有约束都安装在所有大小类上。
在viewDidAppear: 中调试值时,我看到以下内容:
- po self.view: frame = (0 0; 250 394)
- po self.preferredContentSize(宽度 = 250,高度 = 160)
是什么导致视图的高度跳到 394?
我实际上在 iPhone 6 Plus 环境中的另一个 popover segue 也遇到了同样的问题。 (如果有好奇心,我在这里使用 VC 而不是“UIAlertController”,因为显示的UITextField 的验证要求不适用于UIAlertController。)
编辑以包含我的弹出框代码:
此代码在prepareForSegue:中找到
FavoriteNameViewController *nameVC = segue.destinationViewController;
UIPopoverPresentationController *popPC = nameVC.popoverPresentationController;
popPC.delegate = self;
nameVC.delegate = self;
nameVC.view.center = self.originalContentView.center;
然后是委托方法:
- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {
return UIModalPresentationNone;
}
这是 Xcode 中的 segue 定义:
【问题讨论】:
标签: ios uiviewcontroller iphone-6-plus