如何延迟提示位置服务权限

时间:2013-03-10 16:56:26

标签: ios mkmapview uialertview cllocationmanager

在我的应用程序中,我正在使用CLLocationManager和MKMapView。当应用程序启动时,我向用户提供必须被接受的免责声明(一次)。但是,当显示免责声明时,会出现一个弹出窗口,请求访问用户位置。

在接受免责声明之前,有没有办法延迟此alertView? 请指教。

编辑:

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

if([[NSUserDefaults standardUserDefaults] objectForKey:@"disclaimerAccepted"] == nil) {
    [self firstRun];
    [[NSUserDefaults standardUserDefaults] synchronize];
}
else
{
    [self locationStuff];
}
)

2 个答案:

答案 0 :(得分:3)

位置警报视图仅在您实际请求用户位置时显示,因此最简单的方法是确保第一次运行应用程序时启动CLLocationManager或显示{{ 1}}直到你的免责声明被接受为止。这可能需要您移动一些方法。

答案 1 :(得分:0)

也许您需要首先检查免责声明,如果接受,则启动CLLocationManager。如果不接受免责声明 - 等待接受并开始CLLocationManager

- (void)viewDidLoad
{
   [super viewDidLoad]; 
   if (disclaimerAccepted)
   {
      //start CLLocationManager
   }
   else
   {
      //Show disclaimer
   }
}
- (void)disclaimerAccepted
{
    disclaimerAccepted = YES;
    //start CLLocationManager
}