UIPopoverPresentationController/UIPopoverController在接口旋转时丢失backgroundColor

atr*_*eat 5 cocoa-touch popover uipopovercontroller ios presentviewcontroller

我在iOS中有一个菜单,我在popover中显示.我可以分别使用UIPopoverController和UIPopoverPresentation控制器在iOS7和iOs8中呈现一个popover.我遇到了一个问题,虽然当弹出窗口可见并且设备旋转时,弹出窗口在动画期间瞬间消失,然后在动画后重新出现.问题是,当弹出窗口重新出现时,其背景颜色被绘制为默认背景颜色.

我正在使用backgroundColor属性设置颜色.

self.popoverPresentationController.backgroundColor = [UIColor grayColor]; // iOS 8 style
Run Code Online (Sandbox Code Playgroud)

我90%肯定这实际上是Apple实施中的一个错误.我在backgroundColorafter rotation属性中看到的值是正确的,但绘制的像素不是.我想知道是否有其他人遇到过这个问题并找到了解决方法.如果雷达打开我会跟着它,如果不是,我会自己提交一个.

我将添加我如何呈现popover.在这两个版本中,我使用barButtonItem作为我的锚点.

[self.menuPopoverController presentPopoverFromBarButtonItem:item permittedArrowDirections:UIPopoverArrowDirectionAny animated:animated];
Run Code Online (Sandbox Code Playgroud)

这里是使用新的iOS8 UIPresentationPopoverController:

UIPopoverPresentationController *popover = self.popoverPresentationController;
popover.permittedArrowDirections = UIPopoverArrowDirectionAny;
popover.barButtonItem = item;
[viewController presentViewController:self animated:YES completion:nil];  // I'm presenting a view controller from within itself.
Run Code Online (Sandbox Code Playgroud)