title: Black or grey background under UIViewController with blur effect
body: <p>I have several tabs in my application (<code>UITabBarController</code>), and in one of them I can show modal UIViewController with blur effect (over the current controller from tab).</p>
  
  <pre><code>    let bVC = BlurViewController()
      bVC.modalPresentationStyle = .overCurrentContext
      self.present(bVC, animated: true, completion: nil)
  </code></pre>
  
  <p>Blurred controller is just a simple <code>UIViewController</code> with this code in <code>viewDidLoad</code>:</p>
  
  <pre><code>    let blurEffect = UIBlurEffect(style: .extraLight)
      let blurEffectView = UIVisualEffectView(effect: blurEffect)
      blurEffectView.frame = self.view.frame
  
      self.view.insertSubview(blurEffectView, at: 0)
  </code></pre>
  
  <p>The first problem I have here, other tabs are still accessible. User is able to tap on them without dismissing my blurred controller.</p>
  
  <p><a href="https://i.stack.imgur.com/FQ4UH.png" rel="nofollow"><img src="https://i.stack.imgur.com/FQ4UH.png" alt="Tab items are still accessible"></a></p>
  
  <p>It's not a real problem, but when this user is back, my blurred viewcontroller has gray background. It's understandable, all areas behind it were not redrawn but it's a problem.</p>
  
  <p><a href="https://i.stack.imgur.com/pUrRW.png" rel="nofollow"><img src="https://i.stack.imgur.com/pUrRW.png" alt="Gray background"></a></p>
  
  <p>The third problem: if this user would try to close my blurred controller, the first controller is just black.</p>
  
  <p>I know I can fight the last two problems with this:</p>
  
  <ol>
  <li><p>dismiss blurred controller in <code>viewDidDisappear</code>.</p></li>
  <li><p>remember "the blurred state" in its parent controller.</p></li>
  <li><p>if user is back, show blurred controller again.</p></li>
  </ol>
  
  <p>But maybe there is a more elegant and simple approach?</p>