Я создаю MKMapView
без раскадровки.Это мой ViewController
класс (setupLayout
вызывается на viewDidLoad
) и мой MapViewController
класс:
// MARK: - View Controller Lifecycle
extension ViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupInterface()
}
}
// MARK: - Interface
extension ViewController: Interface {
func setupInterface() {
setupDesign()
setupStrings()
setupBindings()
setupLayout()
}
}
Класс MapViewController
:
class MapViewController: ViewController {
internal var cars: [Car]?
// MARK: Interface Properties
private var mapView = MKMapView(frame: .zero)
// MARK: Internal Functions
internal override func updateCars(cars: [Car]) {
self.cars = cars
placeCars()
}
}
// MARK: - Interface
extension MapViewController {
// MARK: Strings
override func setupStrings() {
super.setupStrings()
title = Strings.mapViewTitle.localized
}
// MARK: Bindings
override func setupBindings() {
super.setupBindings()
mapView.delegate = self
mapView.register(CarAnnotationView.self, forAnnotationViewWithReuseIdentifier: CarAnnotationView.reuseIdentifier)
mapView.setRegion(MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: Constants.StartCoordinates.latitude, longitude: Constants.StartCoordinates.longitude), span: MKCoordinateSpan(latitudeDelta: Constants.StartCoordinates.latitudeDelta, longitudeDelta: Constants.StartCoordinates.longitudeDelta)), animated: true)
}
// MARK: Layout
override func setupLayout() {
super.setupLayout()
view.addSubview(mapView)
mapView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
}
}
Методы делегатовне вызываются, и карта не отображается должным образом:
Если я снова перейду на задний план и на передний план, карта будет работать, как и ожидалось.Любые идеи, где проблема может быть заложена?