2017-07-19 6 views
0

私はこれを達成するための提案で複数の場所を読んだ。私はバックグラウンドでUIビューを追加し、それを無効にして設定し、ポップオーバーを表示した後、ビューを有効にするように設定しました。スイフト3ポップオーバー薄暗い背景

あなたはそれがうまく動作するように見えます見ることができるように:

enter image description here

しかし、私は二つの問題を持っています。最初のものは、ポップオーバーが提示された後です。ポップオーバーを解除するには、バックグラウンド上の任意の場所をタップすることができます。これが起こるのを防ぐためにどこにいますか? UIViewが入力をブロックすると私は考えました。

また、ポップオーバーが解除された後、画面はまだ暗いです。私は、次のことを試してみましたが、ビューが無効にセットバックされることは決してありませんので、それらのいずれもポップオーバーを却下した後にロードします。

override func viewDidAppear(_ animated: Bool) { 
     dimView.isHidden = true 
    } 

override func viewWillAppear(_ animated: Bool) { 
     dimView.isHidden = true 
    } 

EDIT:

は、これは私がポップオーバーを提示するために使用するコードです:

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

     popover?.modalPresentationStyle = .popover 
     popover?.popoverPresentationController?.delegate = self as? UIPopoverPresentationControllerDelegate 


     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) 

     dimView.isHidden = false 

     self.present(popover!, animated: false) 
+0

dimView.isHidden = true in dissmissビューコントローラビューは呼び出されていないようです –

+0

popoverVCに追加するにはどうすればいいですか?現在、メインビューコントローラのコンセント – Martheli

答えて

0

私はit.AfterのタップポップオーバーがviewDidAppearとviewWillAppearが呼び出されることはありません却下されたときにPopoverVCにそれを追加し、解任扱い、dimViewはPopoverVCではない、ことを実現します。あなたの画面は依然としてぼやけています。PopViewにdimViewを追加すると、これらのissusesを解決できることを願っています。

+0

popoverVCにどのように追加しますか?現在、メインビューコントローラのコンセントです。 – Martheli

関連する問題