title: Reevaluate CLLocationManager.authorizationStatus in running app after app location settings change
body: <p>Thanks to Thomas's advice below I've modified my code from the original request.  I'm wondering if I'm trying to do something impossible or, if not, how I could accomplish this.</p>
  
  <p>If the user hasn't authorized location services, I am prompting them via an alert with an "Open Settings" button to change the app's location settings.  This works.  But upon return from settings to app, I'd like to recognize if the change was made and activate location services.  Can this be done?  The closure below successfully gets the user to the app's settings, the user can make changes, and the user can return, but the closure fires when the user presses "Open Settings", which is before settings have been changed. BTW: If there's a better way to handle nudging the user to approve an app's currently unauthorized location prefs, I'd appreciate advice.  Thanks!</p>
  
  <pre><code>locationManager.requestWhenInUseAuthorization() // request authorization
  
  let authStatus = CLLocationManager.authorizationStatus()
  
  switch authStatus {
      case .denied:
          let alertController = UIAlertController(title: "Background Location Access Disabled", message: "In order to show the location weather forecast, please open this app's settings and set location access to 'While Using'.", preferredStyle: .alert)
          alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
          alertController.addAction(UIAlertAction(title: "Open Settings", style: .`default`, handler: { action in
              if #available(iOS 10.0, *) {
                  let settingsURL = URL(string: UIApplicationOpenSettingsURLString)!
                  UIApplication.shared.open(settingsURL, options: [:], completionHandler: {(success) in
                      print("*** Success closure fires")
                      let newAuthStatus = CLLocationManager.authorizationStatus()
                      switch newAuthStatus {
                      case .authorizedWhenInUse:
                          self.locationManager.startUpdatingLocation()
                      default:
                          print("Not .authorizedWhenInUse")
                      }
                  })
              } else {
                  if let url = NSURL(string:UIApplicationOpenSettingsURLString) {
                      UIApplication.shared.openURL(url as URL)
                  }
              }
          }))
          self.present(alertController, animated: true, completion: nil)
  
      case .authorizedWhenInUse, .authorizedAlways:
          locationManager.startUpdatingLocation()
      case .restricted :
          print("App is restricted, likely via parental controls.")
      default:
          print("UH!! WHAT OTHER CASES ARE THERE? ")
      }
  </code></pre>