【Swift5】ボタンからPopoverを出す。

ボタン等をタップした時に、そこからフキダシのようにUIViewControllerを表示させる、Popoverの簡素なコードです。

class CanvasViewController: UIViewController,UIPopoverPresentationControllerDelegate{


    func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
       return .none
    }

    func presentPopver(viewController: UIViewController!, sourceView: UIView!) {
       viewController.modalPresentationStyle = UIModalPresentationStyle.popover
       let size = self.view.frame.size
       viewController.preferredContentSize = size
       
       let popoverController = viewController.popoverPresentationController
       popoverController?.delegate = self
       // 出す向き(DownはsourceViewの上)
       popoverController?.permittedArrowDirections = UIPopoverArrowDirection.down
       // どこから出た感じにするか
       popoverController?.sourceView = sourceView
       popoverController?.sourceRect = sourceView.bounds
       
       self.present(viewController, animated: true, completion: nil)
    }

@IBAction func buttonTap(_ sender: UIButton) {
       let targetView = MyViewController()
       self.presentPopver(viewController: targetView, sourceView: sender)
    }

}




この記事が気に入ったらサポートをしてみませんか?