Мне нужно встроить карты Google через контроллер панели вкладок, но у меня проблема.если я не отображаю карты Google на первом экране панели вкладок контроллера, то функции определения доступа к геолокации и определения текущего местоположения не выполняются:
func locationManager (_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)
func locationManager (_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
примечание 1: приложениес контроллером панели вкладок корректно работает только при первом запуске, если я убиваю приложение, затем открываю его, то функции геолокации не работают.это помогает только переустановить приложение
примечание 2: Карты Google не работают только в контроллере панели вкладок.Я делал их отдельно или инициализировал первый просмотр.Но мне нужно, чтобы они были точно в панели вкладок контроллера
Примечание 3: Здесь показан раскадровка, viewcontroller 3 содержит карты Google
https://cdn1.savepice.ru/uploads/2019/7/2/b82c92582c21b4a208590b226e5dc2b9-full.png
class ViewController: UIViewController {
@IBOutlet weak
var mapView: GMSMapView!
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
mapView.delegate = self
}
}
extension ViewController: CLLocationManagerDelegate {
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if status == .authorizedWhenInUse {
locationManager.startUpdatingLocation()
mapView.isMyLocationEnabled = true
mapView.settings.myLocationButton = true
} else {
let camera = GMSMutableCameraPosition(latitude: 48.706986, longitude: 44.515993, zoom: 15)
mapView.camera = camera
}
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if let location = locations.first {
mapView.camera = GMSCameraPosition(target: location.coordinate, zoom: 15, bearing: 0, viewingAngle: 0)
locationManager.stopUpdatingLocation()
}
}
}