我正在使用一个关闭自动布局的旧应用程序,我只是遇到了一个需要在iPhone上显示弹出窗口的地方。
我使用的代码是例程:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "popoverSegue" {
let popoverViewController = segue.destinationViewController as! UIViewController
popoverViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
popoverViewController.popoverPresentationController!.delegate = self
}
}
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.None
}自动布局的示例结果:

自动布局关闭的示例结果:

有没有一种方法可以在没有自动布局的情况下显示使用苹果内置系统的弹出程序?
发布于 2015-07-14 17:28:24
我相信最终的答案是,如果你关闭自动布局,你就不能在iPhone上使用苹果内置的popover系统。
我强烈建议编写自己的基本UIView显示系统,以适当地处理显示/隐藏视图。
提示:内置弹出系统最方便的部分是,它禁用背景,指向相关项目,并关闭外部龙头等。
如果您可以在没有指向的情况下生活,那么其他一切都很容易复制,因为您已经关闭了自动布局。您可以将视图大小锁定为"iPhone“,然后使UIView背景色变得清晰和完整,并将适当大小的较小的"content”视图放在其上。透明视图禁用对其下的项目的点击,如果需要,您可以应用一个点击手势来处理解雇。
发布于 2015-07-13 15:32:36
如果您使用IOS 8及以上版本,您可以尝试这样做(目标-C :( ) )。
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
UIViewController *popoverViewController = segue.destinationViewController;
popoverViewController.modalPresentationStyle = UIModalPresentationPopover;
popoverViewController.popoverPresentationController.delegate = self;
}https://stackoverflow.com/questions/31348151
复制相似问题