2014-02-21 19 views
0

我想在我的应用程序中使用iOS didEnterRegion方法。我有一个tableView,将用户传递给profileViewController。在profileViewController的viewDidLoad方法中,我有一组纬度和经度坐标,我将其存储为一个区域,然后我开始监视该区域。didEnterRegion方法只触发最近区域

此代码有效,但didEnterRegion方法仅触发加载的最后一个配置文件。例如,如果我查看配置文件A并开始监控配置文件A的区域,那么我查看配置文件B,如果我输入配置文件B的区域,则只会触发didEnterRegion。

有谁知道可能会发生什么错误?谢谢!

下面是在profileViewController的viewDidLoad方法的代码:

NSString *latOne = placeLatitude; 
NSString *lngOne = placeLongitude; 
NSString *radiusOne = @"100"; 

CLLocationDegrees latTwo = [latOne doubleValue]; 
CLLocationDegrees lngTwo =[lngOne doubleValue]; 
CLLocationDistance radiusTwo = [radiusOne doubleValue]; 

CLLocationCoordinate2D coordinates = CLLocationCoordinate2DMake(latTwo, lngTwo); 
CLRegion *grRegion = [[CLRegion alloc] initCircularRegionWithCenter:coordinates 
radius:radiusTwo identifier:[NSString stringWithFormat:@"grRegion%i", 1]]; 

[locationManager startMonitoringForRegion:grRegion]; 

我didEnterRegion也是在profileViewController

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region 
{ 
    //local notification code is in here 
} 

回答

0

被设置为视图控制器您的位置管理器的代表是将执行/响应didEnter/didExit的代表,我建议您使用singelton模式(或共享实例)o f您的位置经理并正确设置代表。几个位置管理器的视图控制器可能会导致问题。

相关问题