UITabBarController w /多个MKMapViews

时间:2012-04-17 19:30:55

标签: objective-c ios cocoa-touch mapkit

我有UITabBarController控制一对MKMapViews。我如何保持他们的状态彼此持久?我尝试过设置单例模式,但它们仍然是独立的。

1 个答案:

答案 0 :(得分:2)

我为您的问题找到了两种可能的解决方案

  1. 您在控制器中实例化一个(1x)MKMapView(可能是单个)。让我们在你的AppDelegate中说你有一个MKMapView个实例。

    • 每个Tab使用一个UIViewController实例(所以:许多UIViewControllers,但控制器中只有一个MKMapView。
    • 您在标签栏控制器代表处收听- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
    • 当用户更改选项卡时,将单个(1x)MKMapView放在显示的UIViewController视图上。
    • 但是在这里你将拥有相同的内容(注释,区域,数据)

  2. 您可以同步多个MKMapView

    • 侦听MKMapView委托(– mapView:regionWillChangeAnimated:等)并将值与其他MKMapViews同步。您需要通过通知(NSNotification)或控制器执行此操作。
    • 这样可以为您提供更多灵活性,即您希望同步的值以及哪些值必须与MKMapViewMKMapView不同。