0

在我的应用程序中,我使用的是 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];
}
)
4

2 回答 2

3

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

于 2013-03-10T17:07:46.797 回答
0

也许您需要首先检查免责声明以及是否接受 start CLLocationManager。如果不接受免责声明 - 等待接受并开始CLLocationManager

- (void)viewDidLoad
{
   [super viewDidLoad]; 
   if (disclaimerAccepted)
   {
      //start CLLocationManager
   }
   else
   {
      //Show disclaimer
   }
}
- (void)disclaimerAccepted
{
    disclaimerAccepted = YES;
    //start CLLocationManager
}
于 2013-03-10T23:33:02.753 回答