iOS 8中的popover全屏

Posted

技术标签:

【中文标题】iOS 8中的popover全屏【英文标题】:popover full screen in iOS 8 【发布时间】:2015-01-09 07:30:07 【问题描述】:

我有UIPopoverController 的以下代码。它在 ios 7 中运行良好。但是,在 iOS 8 中,弹出框变成了我不想要的全屏。如何防止弹出框在 iOS8 中填满整个屏幕?

CGRect buttonFrame = [[[[[self tabBarController] tabBar] subviews] objectAtIndex:index+1] frame];

popover = [[UIPopoverController alloc]initWithContentViewController:viewmapmenu] ;

popover.popoverContentSize = CGSizeMake(95, 128.0) ;

popover.delegate = self ;

[popover presentPopoverFromRect:buttonFrame inView:self.tabBarController.tabBar permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES] ;

【问题讨论】:

【参考方案1】:

尝试添加这个委托方法。

- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller;
    return UIModalPresentationNone;

【讨论】:

UIPopoverController 更改为UIPopoverPresentationController【参考方案2】:

看,情况是这样的。如果您在 iPhone 中显示弹出框,那么它将无法在 iOS 8 中使用,因为 Apple 已经完全限制了它,即使它以前可以使用。现在你不能在 iPhone 中显示 popover,因为所有对 UIPopover 私有方法的访问都被阻止了。

您可以查看 github 中的 FPopover 库以在 iPhone 中使用 popover:- https://github.com/50pixels/FPPopover

【讨论】:

啊哈,所以它只适用于 iPad。很高兴知道这一点。

以上是关于iOS 8中的popover全屏的主要内容,如果未能解决你的问题,请参考以下文章

检查 View 是在 Popover 中显示还是全屏显示

转换为使用 iOS 8 Popover Segues 时 UISplitViewController 崩溃

ios 7中的UI Popover ViewController?

iOS_21团购_Popover适应iPad横竖屏切换

iOS 7 - PopOver 中的 UITableViewController 可以找到带有错误的 segue Receiver(UITableViewController) has no segu

Popover 适配内容大小 IOS