2017-07-20 22 views
0

TestViewControllerと呼ばれるメインビューコントローラがあり、ボタンをタップするとポップオーバービューコントローラが開きます。バックグラウンドをタップすると、無効にしたいポップオーバーが解除されます。ポップオーバービューコントローラにこのコードがあり、実行する必要がありますが実行されていません。ポップオーバーを無効にする背景でタップスウィフト

extension TestViewController: UIPopoverPresentationControllerDelegate { 

    func popoverPresentationControllerShouldDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) -> Bool { 
     print ("TEST") //This does not show up in console 

     return false 
    } 
} 

EDIT:

は、これは私がポップオーバーを開くために使用するコードです。

let popover = storyboard?.instantiateViewController(withIdentifier: "PopoverVC") as! PopOverViewController 

     popover.modalPresentationStyle = .popover 

     popover.popoverPresentationController?.sourceView = self.view 
     popover.popoverPresentationController?.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.midY, width: 0, height: 0) 

     popover.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0) 


     popoverPresentationController?.passthroughViews = nil 

     popover.dimView2 = self.dimView2 

     dimView2.isHidden = false 

     self.present(popover, animated: false) 

    } 
+0

デリゲートを設定しましたか?コードを投稿 – Bilal

+0

@Bilal私の質問が更新されました。 – Martheli

+0

@Bilalあなたの権利は、 'popover.popoverPresentationController?.delegate = self as?を追加するのを忘れましたか? UIPopoverPresentationControllerDelegate'。それを答えとして作成すると、私はあなたに投票します。 – Martheli

答えて

3

デリゲートを設定します。

popover.popoverPresentationController?.delegate = self 
関連する問題