iOS应用程序永远不会退出地图

时间:2011-11-12 02:45:56

标签: ios map load

我的应用程序刚刚上传到应用程序商店。在我的应用程序中,我有一个按钮,可以从当前位置指定特定位置。在模拟器中一切正常,但在按下录制按钮时在iphone上加载地图,所以你按下iphone按钮退出地图但是当我点击我的应用再次打开它时,它会再次加载地图一个小时后!

基本上它会在每次按下方向按钮后加载应用程序时继续加载地图。

所以你打开应用程序,应用程序只打开地图!

我不知道发生了什么事!

这是我使用的代码,

- (IBAction)directionButton {
[super viewDidLoad];

CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
[locationManager startUpdatingLocation];
}


- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
       fromLocation:(CLLocation *)oldLocation
{
double currentLat = newLocation.coordinate.latitude;
double currentLong = newLocation.coordinate.longitude;

NSString* url = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%f,%f&daddr=%@",
                 currentLat, 
                 currentLong,
                 [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
}

4 个答案:

答案 0 :(得分:1)

  1. 你不应该在 - (IBAction)directionButton方法中调用[super viewDidload]。
  2. 我认为你在viewDidLoad或viewWillAppear或者那些方法中调用 - (IBAction)directionButton方法。因此,每次打开应用程序时,都会调用此方法,过了一段时间,当CLLocationManager调用委托方法时,您的应用程序会重定向到地图应用程序。

答案 1 :(得分:0)

你的问题不是很清楚,但根据我的理解,这只是解雇包含地图的视图并返回上一个视图的问题。如何使用按钮将视图从视图更改为带有地图的视图?

答案 2 :(得分:0)

我只是通过阻止应用在后台运行来修复此问题。

所以你需要在info.plist中添加一个新行并使其成为“应用程序不在后台运行”,检查前面的框。

答案 3 :(得分:0)

解决方案非常简单。完成更新位置后,请调用以下方法,

[manager stopUpdatingLocation];

其中manager是您的CLLocationManager实例。