2012-06-03 41 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,直到应用程序获得用户的选择。

相关问题