使用MapView的TabBar应用程序(我在哪里下载信息以及如何在MapView中显示该信息?))

时间:2012-05-03 11:17:16

标签: objective-c uitabbarcontroller nsurlconnection

我的应用程序包含一个带有MapView和TableView这样的控制器的TabBarController。它将在视图中显示的信息必须通过NSURLConnection下载,并且需要很长时间。我怀疑:

我将有一个类(NSObject),它将下载数据并解析它。但是地图(带注释)和表格都需要显示此信息。

  • 我在哪里下载数据?在其他问题之间,地图会在下载数据之前出现,那么如何使用注释更新地图?

更新:

好吧,也许我需要更好地解释一下。 我的应用程序使用反向用户位置下载信息,因此在AppDelegate.m中我使用locationManager。 locationManagerDelegate符合Downloader.m(通过NSURLConnection获取信息)。 到目前为止,mapView出现在屏幕上,当然是空的,因为它没有信息所以annotations属性为空。 下载器完成下载信息后,我需要在地图中设置注释。不管怎么样我的意思是,我在Downloader.m中没有mapViewController的实例。我创建一个的地方是appDelegate。 我的大问题是我必须完成任务的地方(appDelegate.m,Downloader.m,mapViewController.m),因为我要同时拥有mapView和tableView,我需要为两者下载的信息他们。

非常感谢

1 个答案:

答案 0 :(得分:0)

好的我会根据我的理解来回答你的问题:)

我假设你正在使用NSURLConnection的委托方法,你的最终方法是:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

这是您要处理所有数据的地方,因为此方法意味着已从服务器检索所有数据。

所以关于注释的最终答案,因为你要通过NSURLConnection检索数据,而不是像你要实现代码那样:

MKCoordinateSpan coordinateSpan = MKCoordinateSpanMake(0.01, 0.01);
MKCoordinateRegion coordinateRegion = MKCoordinateRegionMake(centerPoint, coordinateSpan);

[noteMap setRegion:coordinateRegion];
[noteMap regionThatFits:coordinateRegion]; //this is the center and region of your map

MyLocation *annotation = [[MyLocation alloc] initWithName:"annotation-name" address:"your-subtitle" coordinate:cordPoint] ; //this is an annotation class that i implemented
["your-map-view" addAnnotation:annotation]; //this is the method for adding annotation

我希望上面的代码符合您的要求..