あなたはsourceViewとsourceRectプロパティを使用して、ポップオーバーのためのアンカーポイントを提供する必要があります。以下のようなポップオーバーのプロパティを設定するために提示するコントローラのprepareForSegueのFUNCの メイクの使用:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "SegueIdentifier" {
let destController = segue.destinationViewController
let popover = destController.popoverPresentationController;
destController.popoverPresentationController!.delegate = self
destController.preferredContentSize = CGSize(width: 320, height: 186)
popover?.sourceView = self.button;
popover?.sourceRect = self.button.bounds
}
}
この方法は、コードをよりモジュラーであり、あなたのコンテンツビューコントローラが他の場所で使用することができるあなたがここにもpreferredContentSizeを提供することができますあまりにも。
私の理解では、storyBoardのsegueの上にポップをリンクすると、sourceViewを提供したことになります。 Appleのドキュメントに従って、anchor pointを使用するにはsourceViewとsourceRectを併用します。私はあなたがストーリーボードを使ってあなたの場合のようにsourceRectを提供しないと推測していますが、OSはビューの原点をとります。なぜなら、Popoverの矢印は適切ではないからです。適切なsourceRectを指定すると、結果が向上します。
出典
2016-07-26 09:21:49
SHN
あなたのコードスニペットを共有できますか他に問題を分析するのが難しくなりますか? – SHN
@SHNコードを今追加しました –