setPopoverContentSize:使用xCode 6在iOS 8上无法正常工作

最近,我已升级到xCode 6.我有两个用于开发的iPad;一个运行iOS 7.1.2,另一个运行iOS 8.0.2.

在我的应用程序中,我使用UIPopoverController来显示UITableViewController中的项列表.从iOS 5到iOS 7,这一切都运行良好.我只创建一次UIPopoverController,并且我经常在整个应用程序中重复使用它.我希望popover的大小足以显示列表中的项目(1到5项),所以我调用setPopoverContentSize:animated:在我确定显示区域应该有多大之后调整popover的大小.

正如我所提到的,这一切都很好.如果我使用运行iOS 7的iPad开发,一切仍然可以正常工作.但是如果我使用运行iOS 8的iPad,那么第一次调用setPopoverContentSize:动画会正确调整弹出窗口的大小 – 但仅限于第一次调用.所有后续调用都不会影响弹出窗口的大小.

该应用程序的发布版本仍可正常运行,即使它在iOS 8上运行(它是使用xCode 5开发并提交给Apple的).所以这似乎是与xCode 6和iOS 8相结合的问题.

我无法弄清楚为什么只有第一次调用setPopoverContentSize:animated正在工作.有没有人见过这种行为?如果是这样,你是如何在UIPopoverController上调整大小才能正常工作的?

解决方法

为了记录,我发现了两种纠正这种行为的方法.一种是每次我想要使用它时重新创建UIPopoverController.

另一种方法是使用UITableViewController的preferredContentSize而不是setPopoverContentSize:animated:.

最后 – 正如我所说,如果您正在使用xCode 6 for iOS 8进行开发,这是必要的.

相关文章

在有效期内的苹果开发者账号(类型为个人或者公司账号)。还...
Appuploader官网--IOS ipa上传发布工具,证书制作工具跨平台...
苹果在9月13号凌晨(北京时间)发布 iOS 16,该系统的设备可...
计算机图形学--OpenGL递归实现光线追踪
Xcode 14打出来的包在低版本系统运行时会崩溃,报错信息是Li...