Objective c 带多个MKMapViews的UITABBARC控制器
我有一个Objective c 带多个MKMapViews的UITABBARC控制器,objective-c,ios,cocoa-touch,mapkit,Objective C,Ios,Cocoa Touch,Mapkit,我有一个UITabBarController控制一对mkmappviews。我如何使他们的状态彼此保持一致?我已经尝试设置了一个单例模式,但它们仍然是独立的。我看到了两种可能的解决方案 在控制器(可能是单例)中实例化一(1x)MKMapView。假设在AppDelegate中有一个MKMapView实例 每个选项卡使用一个UIViewController实例(因此:控制器中有许多UIViewController,但只有一个MKMapView) 您可以在tabbar控制器代理上侦听-(BOOL)
UITabBarController
控制一对mkmappviews
。我如何使他们的状态彼此保持一致?我已经尝试设置了一个单例模式,但它们仍然是独立的。我看到了两种可能的解决方案
MKMapView
。假设在AppDelegate
中有一个MKMapView
实例
- 每个选项卡使用一个
实例(因此:控制器中有许多UIViewController,但只有一个MKMapView)UIViewController
- 您可以在tabbar控制器代理上侦听
-(BOOL)tabbar控制器:(UITabBarController*)tabbar控制器应选择viewController:(UIViewController*)viewController
- 当用户更改选项卡时,您将单个(1x)
放置在出现的UIViewController视图上MKMapView
- 但在这里,您将拥有相同的内容(注释、区域、数据)
MKMapView
- 侦听MKMapView委托(
,等等),并将值同步到其他MKMapView。您需要通过通知(–mapView:regionWillChangeAnimated:
)或控制器来执行此操作NSNotification
- 这将使您能够更灵活地同步哪些值,哪些值必须不同于
到MKMapView
MKMapView
“状态持久化”是什么意思?你想在所有MKMapView中都有相同的区域吗?所以当Tab A区域更改时,你想同时更改Tab B区域吗?是的!对一个区域的任何更改都会影响到另一个区域。相同的注释、相同的区域、相同的跨度等等。谢谢!我已经完成了1)但我记不起要听哪些代表消息。2) 看起来这是一个更优雅的解决方案,所以我同意。