Попробуйте это
func requestLocationPermission() {
let manager = CLLocationManager()
manager.delegate = self
manager.startUpdatingHeading()
// Store manager variable
}
И внедрите
func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading)
Обновление: Вы можете наблюдать за обновлением заголовка без разрешения местоположения.