title: didUpdateLocations called every time when viewWillAppear for Significant Location Change
body: <p>I am using <code>CLLocationManager</code> and <code>MKMapView</code> in same <code>UIViewController</code>.
  I want to call an API only when the significant location change. </p>
  
  <pre><code>import UIKit
  import CoreLocation
  import MapKit
  
  
  class ViewController: UIViewController,CLLocationManagerDelegate,MKMapViewDelegate {
  
  @IBOutlet weak var mapView: MKMapView!
  
  var locationManager = CLLocationManager()
  
  override func viewDidLoad() {
      super.viewDidLoad()
      // Do any additional setup after loading the view, typically from a nib.
      self.locationManager.requestAlwaysAuthorization()
      self.locationManager.delegate = self
      self.locationManager.startMonitoringSignificantLocationChanges()
      self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
      self.locationManager.distanceFilter = 500
      mapView.showsUserLocation = true
  }
  
  override func viewWillAppear(_ animated: Bool) {
      super.viewWillAppear(true)
  }
  
  
  override func didReceiveMemoryWarning() {
      super.didReceiveMemoryWarning()
      // Dispose of any resources that can be recreated.
  }
  
  public func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
          print("locations \(locations)")
   }
  
  }
  </code></pre>
  
  <p>In this, the main issue is whenever I make the app background and foreground <code>didUpdateLocations</code> get called. I want it to be called only when significant location change, not every time when <code>viewWillAppear</code> called. </p>
  
  <p>I found its because of <code>MKMapView</code>, <code>didUpdateLocations</code> is being called. </p>