ios - 切换 Storyboard后如何清除所有 map ?

标签 ios swift mkmapview

我有 2 个 Storyboard。我需要在它们之间切换。第一个 Storyboard有一个 map View Controller 。当我切换到第二个 Storyboard时,我更改了 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()

但是当我打开第一个 Storyboard时,我会像之前一样看到所有注释。如何从 map 中删除缓存?

最佳答案

这是因为mapviewController仍然存在,并且带有 map 注释,只需在切换之前删除所有注释,下面是所需的代码:-

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

关于ios - 切换 Storyboard后如何清除所有 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55417776/

相关文章:

objective-c - 识别 iOS 项目中每个文件的 LOC - 基于 ObjectiveC 的应用程序开发

iphone - UIButtons 事件 Touch up 里面不能正常使用?

iphone - UIBarButtonItem 以编程方式

尝试在另一个 Storyboard中打开时 iOS SideMenu 崩溃

objective-c - 在 Core Data 中保存 MKOverlay 对象

ios - 无法将 SKScene 委托(delegate)设置为自 ios8

ios - 使用 Swift 对两个数组进行排序

ios - 强制 subview Controller 调用基本 View Controller 方法

objective-c - 如何清除 MKMapView 缓存?

ios - 点击 MKAnnotationView 不会调用 didSelectAnnotationView 委托(delegate)