2016-05-24 2 views
0

Я пытаюсь найти способ сохранить область и масштаб изображения, когда я переключаюсь между двумя контроллерами представления.Как предотвратить отображение карты из состояния освобождения?

Что происходит сейчас, так это то, что каждый раз, когда я возвращаюсь с контроллера дочернего представления, mapview повторно инициализирует себя и, таким образом, userTrackingMode и userLocation.

class MainViewController: UIViewController { 
    @IBOutlet var mapView: MKMapView! 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    initLocationManager() 
    } 
} 

extension MainViewController: MKMapViewDelegate { 

    func initLocationManager() { 
    mapView.showsUserLocation = true 
    mapView.setUserTrackingMode(.Follow, animated: true) 
    } 

    func stopLocationServices() { 
    mapView.setUserTrackingMode(.None, animated: true) 
    } 

    func mapView(mapView: MKMapView, regionWillChangeAnimated animated: Bool) { 
    if mapViewRegionDidChangeFromUserInteraction() { 
     mapView.setUserTrackingMode(.None, animated: false) 
    } 
    } 

func centerMapToUser() { 
    mapView.setUserTrackingMode(.Follow, animated: true) 
} 

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { 
    guard annotation is MapAnnotation else { 
    return nil 
    } 

    return MapAnnotationView(annotation: annotation, reuseIdentifier: annotation.description) 
    } 
} 

Есть ли конкретный Segue, что препятствует освобождению родительского вида или, может быть, я думал о хранении нужного региона.

Как вы думаете?

ответ

0

вы можете попробовать ленивую реализацию следующим образом.

@property (nonatomic,strong) MapView *mapView; 

- (MapView *)mapView 
{ 
    if (!_mapView) { 
     _mapView = [MapView new]; 
    } 
    return _mapView; 
} 

Возможно, только изменение собственности на сильный от слабого может решить вашу проблему. Если этого не происходит, предоставьте дополнительную информацию о вашем коде.

+0

Я добавил немного кода, чтобы прояснить ситуацию. –

Смежные вопросы