2012-06-03 43 views
2

點擊「確定」「想要使用您當前的位置」消息後,GPS在首次運行時不會啓動。我有一個表格視圖來顯示當前位置周圍的地名。表中沒有地圖視圖,只是使用CoreLocation框架。當我第一次構建並運行我的應用並獲取表視圖時,着名消息「」myApp「想用當前位置」跳出。單擊「確定」按鈕後,GPS未運行。但是當我再次進入桌面視圖時,GPS運行良好。GPS在點擊「確定」後首次運行時不會啓動

問題是:點擊「確定」按鈕後,如何讓GPS在第一次啓動時運行?提前致謝!

編輯1

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    CLLocationManager *locationManager = [[[CLLocationManager alloc] init] autorelease]; 
    [locationManager setDelegate:self];  

    [locationManager startUpdatingLocation];  
} 

反正是有檢測的「OK」按鈕「想用您的當前位置」點擊消息?

+0

在您重新填充附近位置的表格後,您是否重新繪製表格?你用什麼表格方法來更新行? –

+0

@JasonKulatunga點擊「確定」按鈕後,實際上狀態欄上的GPS指示器在第一次運行時不會啓動。 –

+0

你什麼時候調用'startUpdatingLocation'? –

回答

3

你展示一些代碼:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) { 

     [NSTimer scheduledTimerWithTimeInterval:2 target:self  selector:@selector(timerFired:) userInfo:nil repeats:YES]; 

    } 
} 

- (void)timerFired:(NSTimer*)theTimer{ 

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized) { 
     [self startUpdatingCurrentLocation]; 
     [theTimer invalidate]; 
    } 
    [self startUpdatingCurrentLocation]; 

} 

定時器等待,直到一定的時間間隔已經過去,然後火災,發送指定的消息到目標對象。 NSTimer Reference.

如果用戶按下「確定」按鈕,定時器可以第二次執行啓動GPS並以透明的方式執行。如果沒有,計時器將繼續檢查GPS staus,直到應用程序獲得用戶的選擇。

相關問題