title: Don't dismiss uialertcontroller sheet with tap gesture outside dialog area in iOS
body: <p>in my iOS <code>swift 3.0</code> application, I presented <code>UIAlertController</code> sheet instance over my current ViewController. But I don't want to dismiss that sheet when I tapped on outside an area of the sheet (dimmed semi-transparent background) because I already have to cancel an action.
  Any idea?</p>
  
  <p>I have MGSwipeTableViewCell with more button. When User clicks on that "More" button, following code executes.</p>
  
  <pre><code>func onClickMore(for vmCell: VmCell) {
      let sheet = UIAlertController(title: vmCell.vmItem?.vmNameWithoutIp, message: vmCell.vmItem?.ipAddress, preferredStyle: .actionSheet)
  
      sheet.addAction(UIAlertAction(title: "Create Ticket", style: .default) { (action: UIAlertAction) in
  
      })
  
      sheet.addAction(UIAlertAction(title: "Start VM", style: .default) { (action: UIAlertAction) in
  
      })
  
      sheet.addAction(UIAlertAction(title: "Restart VM", style: .default) { (action: UIAlertAction) in
  
      })
  
      sheet.addAction(UIAlertAction(title: "Stop VM", style: .destructive) { (action: UIAlertAction) in
  
      })
  
      sheet.addAction(UIAlertAction(title: "Cancel", style: .cancel) { (action: UIAlertAction) in
  
      })
  
      present(sheet, animated: true) { 
          sheet.view.superview?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: nil))
      }
  }
  </code></pre>