MKMapView警报自定义

时间:2013-04-10 13:54:31

标签: iphone ios google-maps ios5 uialertview

当您第一次使用MKMapView启动应用程序时,应用程序会显示警告,并显示消息“想要使用您当前的位置”,并选择“不允许”和“确定”。

我需要自定义此消息。此外,我需要知道用户选择了哪个选项。我怎样才能做到这一点?

更新: 我需要在iOS 5 +

上实现这一点

3 个答案:

答案 0 :(得分:3)

CLLocationManager设置目标属性

从这个问题:Replacement for "purpose" property of CLLocationManager

Anna Karenina回答

  

在iOS 6中替换目的属性是一个新的Info.plist   密钥名为NSLocationUsageDescription(又名“隐私 - 位置使用”   说明“)。

     

密钥记录在“信息属性列表密钥参考”中   但不幸的是,它没有被提及的弃用说明   目的财产。

     

但是,CLLocationManager.h确实有这个评论:

     
      
  • 已过时。使用密钥NSLocationUsageDescription在Info.plist中设置目的字符串。
  •   
     

在您的代码中,您可以设置密钥和目的属性(但是   您可能想要检查位置管理员是否对此做出响应   选择器首先是/当将来实际删除该方法时。)

     

如果在iOS 6下运行,位置管理器将使用该密钥。什么时候   在低于iOS 6的情况下运行,关键将被忽略和目的   属性将被使用。

答案 1 :(得分:0)

用于自定义消息

对于消息,您可以使用目标属性,如Alex Terente所说,但它已在iOS 6中弃用

获取选项

用于了解用户是否拒绝了位置管理器提供失败委托的权限。 mapview使用自己的位置管理器,因此:使用MKMapView函数didFailToLocateUserWithError

- (void)mapView:(MKMapView *)mapView didFailToLocateUserWithError:(NSError *)error {
switch([error code]) {
                case kCLErrorDenied:{
                    //user denied
                }
                break;
            }
}

注意:如果您直接使用CLLocationManager,它将是- (void)locationManager: (CLLocationManager *)manager didFailWithError: (NSError *)error;

答案 2 :(得分:0)

如果您要为iOS 6+构建,请使用Info.plist文件中的NSLocationUsageDescription。插入此密钥并将其值设置为您对位置信息的描述。