我正在尝试从UIBarButtonItem调用UIPopoverPresentationController但是在正确定位时遇到问题。特别是轮换后。
注意箭头指向旋转前后的位置。还要注意旋转后如何突然箭头变为灰色(默认情况下),尽管我明确表示它是白色的。
这是我的实施代码:
self.delegate?.popoverMenuWillShow()
self.vc = inViewController
self.barButtonItem = sender
self.conversationQuery = conversationQuery
self.modalPresentationStyle = UIModalPresentationStyle.Popover
if let view = sender.valueForKey("view") {
self.popover = self.popoverPresentationController!
self.popover!.barButtonItem = sender
self.popover!.permittedArrowDirections = .Up
self.popover!.backgroundColor = UIColor.whiteColor()
self.popover!.delegate = self
self.vc!.presentViewController(self, animated: true, completion: { () -> Void in
self.delegate?.popoverMenuDidShow()
})
}
我尝试过使用.sourceView和.sourceRect来改善它的位置但是它在纵向和横向中的呈现方式总是存在偏差。关于箭头的颜色,我尝试在viewDidLayoutSubviews中再次将其定义为白色,但它没有帮助。
有人有想法吗?