Как очистить всю карту после переключения раскадровок? - PullRequest
0 голосов
/ 29 марта 2019

У меня есть 2 раскадровки.Мне нужно переключаться между ними.Первая раскадровка имеет контроллер вида карты.Когда я переключаюсь на вторую раскадровку, я меняю rootViewController, как показано ниже:

let appDelegate = UIApplication.shared.delegate! as! AppDelegate
let storyboard = UIStoryboard(name: "LoginController", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "LoginController")
appDelegate.window?.rootViewController = viewController
appDelegate.window?.makeKeyAndVisible()

Но когда я открываю первую раскадровку, я вижу все аннотации как раньше.Как я могу удалить кеш с карты?

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Только для удаления аннотаций при переходе ко второй раскадровке вы можете попробовать

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    self.mapView.removeAnnotations(mapView.annotations)
}
0 голосов
/ 29 марта 2019

, потому что mapviewController все еще существует с аннотациями карты, просто удалите все аннотации, прежде чем переключать ниже требуемый код: -

for (int i =0; i < [mapView.annotations count]; i++) { 
    if ([[mapView.annotations objectAtIndex:i] isKindOfClass:[MyAnnotationClass class]]) {                      
         [mapView removeAnnotation:[mapView.annotations objectAtIndex:i]]; 
       } 
    }
...