SwiftでiOS向けのコードを勉強しています。
MapKitを使い、現在地の向きを表示させることはできたのですが、
iPhoneで「拡大、縮小、回転」などの操作をすると、向きの表示が消えてしまい
再表示されないのですが、どうすれば良いでしょうか、ご教授いただけたら助かります。
(様々な参考書やサイトの継ぎ接ぎを試しながらの状態で、まだ理解が追いついておらず、
面目ありません。)
userTrackingModeプロパティのセットは、この位置に書くので正解でしょうか?

    import UIKit
    import MapKit

    class ViewController: UIViewController, CLLocationManagerDelegate {

let manager = CLLocationManager()

@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
    super.viewDidLoad()
    manager.delegate = self

    if CLLocationManager.authorizationStatus() != .authorizedWhenInUse {
        manager.requestWhenInUseAuthorization()
    }

    //位置に追従する
    mapView.userTrackingMode = MKUserTrackingMode.follow

    //現在地の向きを表示
    mapView.userTrackingMode = MKUserTrackingMode.followWithHeading

}
func locationManager(_ manager: CLLocationManager,didChangeAuthorization status: CLAuthorizationStatus) {
    if status == .authorizedWhenInUse {
        manager.requestLocation()
    }
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    print("locations : \(locations)")
    let current = locations[0]
    let region = MKCoordinateRegionMakeWithDistance(current.coordinate, 500, 500);
    mapView.setRegion(region, animated: true)


}
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
    print("error = \(error)")
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
    }