title: Swift MkMapView Map is always centered around current location
body: <p>Currently, my code drops a pin on the user's current location. There is one small problem when I try to move the map around, because the view will shift back and be centered around that current location pin. I want the user be able to navigate the map and move it around, and if the user switches view controllers (goes to another tab) and comes back, the map will be centered around the user location pin. I have been trying to modify this code to do this, but I have not had any luck where to start.</p>
  
  <pre><code>import UIKit
  import MapKit
  import CoreLocation
  let newPin = MKPointAnnotation()
  
  class MapVC: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {
  
  
  
  @IBOutlet weak var map: MKMapView!
  
  let locationManager =  CLLocationManager()
  
  override func viewDidLoad() {
      super.viewDidLoad()
  
      // User's location
  
      locationManager.delegate = self
      locationManager.desiredAccuracy = kCLLocationAccuracyBest
      if #available(iOS 8.0, *) {
          locationManager.requestAlwaysAuthorization()
      } else {
          // Fallback on earlier versions
      }
      locationManager.startUpdatingLocation()
  
  
      // add gesture recognizer
      let longPress = UILongPressGestureRecognizer(target: self, action: #selector(MapVC.mapLongPress(_:))) // colon needs to pass through info
      longPress.minimumPressDuration = 1.5 // in seconds
      //add gesture recognition
      map.addGestureRecognizer(longPress)
  }
  
  // func called when gesture recognizer detects a long press
  
  func mapLongPress(_ recognizer: UIGestureRecognizer) {
  
      print("A long press has been detected.")
  
      let touchedAt = recognizer.location(in: self.map) // adds the location on the view it was pressed
      let touchedAtCoordinate : CLLocationCoordinate2D = map.convert(touchedAt, toCoordinateFrom: self.map) // will get coordinates
  
      let newPin = MKPointAnnotation()
      newPin.coordinate = touchedAtCoordinate
      map.addAnnotation(newPin)
  
  
  }
  
  func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
  
  
      map.removeAnnotation(newPin)
  
      let location = locations.last! as CLLocation
  
      let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
      let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
  
      //set region on the map
      map.setRegion(region, animated: true)
  
      newPin.coordinate = location.coordinate
      map.addAnnotation(newPin)
  
  
  
  
  
  }
  
  override func didReceiveMemoryWarning() {
      super.didReceiveMemoryWarning()
      // Dispose of any resources that can be recreated.
  }
  
  
  }
  </code></pre>