2014-02-21 52 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您的位置經理並正確設置代表。幾個位置管理器的視圖控制器可能會導致問題。

相關問題